2012-02-15 67 views
10

Tôi có biểu mẫu có hộp văn bản và nút thêm.cách thêm hàng mới vào vb.net

  1. người dùng có thể viết tên xuống hộp văn bản và nhấp vào nút thêm. nó sẽ lưu trong một datatable với ID tự động.
  2. sau đó, hộp văn bản bị xóa và người dùng có thể viết tên khác trên hộp văn bản và nhấp vào nút.
  3. điều này sẽ thêm vào dữ liệu hiện có trên bộ nhớ có ID hiện tại + 1.
  4. hiển thị trên chế độ xem lưới. (điều này chỉ nhằm mục đích hiển thị để xác nhận nó hoạt động)

Tôi có một dữ liệu như thế này.

Button1.click() event 

    Dim name = txtname.Text 
    Dim dt As New DataTable 
    dt.Columns.Add("ID", GetType(Integer)) 
    dt.Columns.Add("Name", GetType(String)) 
    Dim N As Integer = dt.Columns("ID").AutoIncrement 
    dt.Rows.Add(N, name) 
    GridView1.DataSource = dt 
    GridView1.DataBind() 
    txtname.Text = "" 

Hiện tại tôi có đôi khi giống như mã ở trên. trong chương trình thực sự, nó không chỉ là tên và nó không chỉ là một dữ liệu nên tôi chỉ giả lập một số mã.

và mã này cho aspx.

 <asp:TextBox ID="txtname" runat="server"> 
     </asp:TextBox><asp:Button ID="Button1" runat="server" Text="Button" /> 
     <asp:GridView ID="GridView1" runat="server"> 
     </asp:GridView> 

bất kỳ ai cũng có thể tư vấn cho tôi cách thực hiện? tôi hiểu mã của tôi là crapped và không chính xác nhưng tôi chỉ cần đặt một số mã để các bạn không cần phải làm việc từ đầu cho tôi.

Cảm ơn rất nhiều.

Trả lời

21

Dưới đây là một ví dụ của việc thêm một hàng mới vào một DataTable sử dụng AutoIncrement trên cột đầu tiên:

Xác định cấu trúc bảng:

Dim dt As New DataTable 
    dt.Columns.Add("ID") 
    dt.Columns.Add("Name") 
    dt.Columns(0).AutoIncrement = True 

Thêm một hàng mới:

Dim R As DataRow = dt.NewRow 
    R("Name") = txtName.Text 
    dt.Rows.Add(R) 
    DataGridView1.DataSource = dt 
+0

nó không hoạt động thân mến D ... – lawphotog

+0

nó bổ sung thêm tên nhưng nó sẽ thay thế tên trước tại hàng (0) – lawphotog

+0

Đừng xác định DataTable của bạn trong sự kiện nhấn nút nếu nó có dữ liệu trước đó bạn cần phải giữ lại nó ở phạm vi rộng hơn. Bằng cách đó bạn có thể thêm vào nó, mà không bao giờ gọi mới và loại bỏ tất cả các dữ liệu trước đó. Nếu bạn đi với Private dt như datatable ở cấp lớp, xác định cấu trúc một nơi nào đó giống như trên tải (nhưng không phải trên bài trở lại) khi bạn thêm một hàng trong nút bấm để dt nó sẽ không xóa tất cả các thông tin hiện có đầu tiên. – Jay

4

Trước tiên, bạn cần xác định cấu trúc bảng dữ liệu như sau:

Dim dt As New DataTable 
dt.Columns.Add("ID", Type.GetType("System.String")) 
dt.Columns.Add("Name",Type.GetType("System.String")) 

And Then thêm hàng như:

Dim dr As DataRow = dt.NewRow 
dr("ID") = System.GUID.NewGUID() 
dr("Name") = txtName.Text 
dt.Rows.Add(dr) 
DataGridView1.DataSource = dt 
DataGridView1.DataBind() 
Các vấn đề liên quan