2012-02-15 103 views
10

Tengo un formulario con un cuadro de texto y un botón Agregar.cómo agregar nuevas filas en una tabla de datos vb.net

  1. usuario puede escribir un nombre en el cuadro de texto y haga clic en el botón añadir. se guardará en una tabla de datos con ID automático.
  2. después de eso, el cuadro de texto se borra y el usuario puede escribir otro nombre en el cuadro de texto y hacer clic en el botón.
  3. Esto debería agregarse a la tabla de datos existente en la memoria con la ID existente 1.
  4. mostrar en la vista de cuadrícula. (Esto es sólo para mostrar el propósito para confirmar que funciona)

Tengo una tabla de datos como esta.

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 = "" 

Por el momento tengo en algún momento como el código de seguridad. en el programa real, no es solo un nombre y no es solo una tabla de datos, así que solo simulé un código.

y este código para 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> 

¿alguien me puede aconsejar cómo hacerlo? Entiendo que mi código está dañado y no es correcto, pero solo tengo que poner un código para que no necesiten trabajar desde cero para mí.

Muchas gracias.

Respuesta

21

Aquí se muestra un ejemplo de añadir una nueva fila a una tabla de datos que utiliza AutoIncrement en la primera columna:

Definir la estructura de la tabla:

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

añadir una nueva fila:

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

no funciona Estimado D ... – lawphotog

+0

se añade el nombre, pero reemplaza el nombre anterior en la fila (0) – lawphotog

+0

No defina su tabla de datos en el evento de clic de botón si tiene datos previos, necesita retenerlo en un alcance más amplio. De esta forma puede agregarle, sin llamar a Nuevo y eliminar todos los datos anteriores. Si va con Private dt como datatable en el nivel de clase, defina la estructura en algún lugar como cargar (pero no en la parte posterior de la publicación) cuando agrega una fila en el botón clic para dt, primero no borrará toda la información existente. – Jay

4

primer lugar es necesario definir la estructura de la tabla de datos como el siguiente aspecto:

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

y luego añadir fila como:

Dim dr As DataRow = dt.NewRow 
dr("ID") = System.GUID.NewGUID() 
dr("Name") = txtName.Text 
dt.Rows.Add(dr) 
DataGridView1.DataSource = dt 
DataGridView1.DataBind() 
Cuestiones relacionadas