Click here to Skip to main content
15,887,966 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi All,

I want to add many rows in datatable. But with the below code I can add only One row, if I am trying to add any other value then it is overwriting the 1st row.

Can anyone help me
VB
Private Sub Button62_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnadd.Click
Dim Table1 As DataTable
        Dim Dt As DataSet
        Dim dr As DataRow
       
        Table1 = New DataTable("Medicines")
        Dim medname As DataColumn = New DataColumn("Medicine Name")
        medname.DataType = System.Type.GetType("System.String")
        medname.MaxLength = 500
        Table1.Columns.Add(medname)
        Dim dosage As DataColumn = New DataColumn("Dosage")
        dosage.DataType = System.Type.GetType("System.String")
        dosage.MaxLength = 500
        Table1.Columns.Add(dosage)
        Dim freq As DataColumn = New DataColumn("Frequency")
        freq.DataType = System.Type.GetType("System.String")
        freq.MaxLength = 500
        Table1.Columns.Add(freq)
       
        dr = Table1.NewRow()
        dr(0) = txtmed.Text
        dr(1) = Me.txtdosage.Text
        dr(2) = txtfreq.Text
        Table1.Rows.Add(dr)
        Dt = New DataSet
        Dt.Tables.Add(Table1)
        DataGrid1.DataSource = Dt.Tables("Medicines")
        txtmed.Text = ""
        txtdosage.Text = ""
        txtfreq.Text = ""
End Sub


Thanks in advance.
Posted
Updated 2-Mar-11 20:01pm
v2

use a loop to repeat the same thing.

VB
For i as integer =1 to 10
dr = Table1.NewRow()
        dr(0) = txtmed.Text
        dr(1) = Me.txtdosage.Text
        dr(2) = txtfreq.Text
        Table1.Rows.Add(dr)

Next
 
Share this answer
 
v2
Comments
Saumyavemula 3-Mar-11 2:19am    
I know that I should use loop, but i dont know to write code for that.
Can you help me with code.

Thanks
Dalek Dave 3-Mar-11 4:23am    
For-Next is probable not the best loop to use.
(Unless you know in advance how many entries there will be).
Suggest a While.
pankajupadhyay29 3-Mar-11 7:42am    
actually i did not know syntax for while in VB.Net as I used to C#.
Sebastian Br. 3-Mar-11 15:11pm    
Use a code converter from c# to vb.net or look at google (or maybe a book...) for the syntax of vb.net's loops.
pankajupadhyay29 3-Mar-11 23:10pm    
i rarely required to write or read something in VB.NET and this is just an idea how can we do OP can change according to his requirement.

anyway thanks for your suggestion.
This code Reset ur Datatable every click event Create DataTable once and add value in another event

VB
Dim Table1 As DataTable

        Table1 = New DataTable("Medicines")
        Dim medname As DataColumn = New DataColumn("Medicine Name")
        medname.DataType = System.Type.GetType("System.String")
        medname.MaxLength = 500
        Table1.Columns.Add(medname)
        Dim dosage As DataColumn = New DataColumn("Dosage")
        dosage.DataType = System.Type.GetType("System.String")
        dosage.MaxLength = 500
        Table1.Columns.Add(dosage)
        Dim freq As DataColumn = New DataColumn("Frequency")
        freq.DataType = System.Type.GetType("System.String")
        freq.MaxLength = 500
        Table1.Columns.Add(freq)
 
Share this answer
 
Comments
Saumyavemula 3-Mar-11 2:22am    
Hi,

What is the change you did??
Nanda_MR 3-Mar-11 2:50am    
Nothing. I explain problem
Try this code. Use 2 button

Dim Table1 As DataTable

Private Sub Button62_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnadd.Click
Table1 = New DataTable("Medicines")
Dim medname As DataColumn = New DataColumn("Medicine Name")
medname.DataType = System.Type.GetType("System.String")
medname.MaxLength = 500
Table1.Columns.Add(medname)
Dim dosage As DataColumn = New DataColumn("Dosage")
dosage.DataType = System.Type.GetType("System.String")
dosage.MaxLength = 500
Table1.Columns.Add(dosage)
Dim freq As DataColumn = New DataColumn("Frequency")
freq.DataType = System.Type.GetType("System.String")
freq.MaxLength = 500
Table1.Columns.Add(freq)
End Sub

Private Sub Button63_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnadd.Click
Dim Dt As DataSet
Dim dr As DataRow

dr = Table1.NewRow()
dr(0) = txtmed.Text
dr(1) = Me.txtdosage.Text
dr(2) = txtfreq.Text
Table1.Rows.Add(dr)
Dt = New DataSet
Dt.Tables.Add(Table1)
DataGrid1.DataSource = Dt.Tables("Medicines")
txtmed.Text = ""
txtdosage.Text = ""
txtfreq.Text = ""
End Sub

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900