このコードは挿入されたIDをarraylistに記録しています。ボタンを押すと、この配列のループを作成し、配列から各IDのデータを取得し、Datatableに入れてループ中に新しいデータを追加する必要がありますdatatableと最終的にそれをdatagridviewで表示します。 1つのレコードを挿入すると問題が発生しますが、複数のレコードを挿入すると、最後のものが表示されます。 MainFormをDataTableにデータを追加
Public Inserted_record_hold_dt As New DataTable
Public Inserted_record_dt As New DataTable
Public Sub Addcolumnstodatagrid()
Inserted_record_dt.Columns.Add("ID")
Inserted_record_dt.Columns(0).AutoIncrement = True
Inserted_record_dt.Columns.Add("drawingname")
Inserted_record_dt.Columns.Add("serial")
End Sub
、すでに
を追加されている最新のIDを持つ配列リスト上のループにクリックしたときにmain_Load ショーボタンでAddcolumnstodatagrid()
そして、これでこれを呼んで
Private Sub show_btn_Click(sender As System.Object, e As System.EventArgs) Handles show_btn.Click
Dim InsertedID As Integer
Inserted_record_dt.Clear()
Dim R As DataRow = Inserted_record_dt.NewRow
'Loop For each ID in the array "Inserted_List_Array"
For Each InsertedID In mainadd.Inserted_List_Array
'MsgBox(InsertedID.ToString)
Dim cmd As New SqlCommand("select drawingname , serial from main where drawingid = '" & InsertedID & "'", DBConnection)
DBConnection.Open()
Inserted_record_hold_dt.Load(cmd.ExecuteReader)
Try
R("drawingname") = Inserted_record_hold_dt.Rows(0).Item(0)
R("serial") = Inserted_record_hold_dt.Rows(0).Item(1)
Inserted_record_dt.Rows.Add(R)
Catch
End Try
'MsgBox("added")
DBConnection.Close()
cmd = Nothing
Inserted_record_hold_dt.Clear()
Next
sendmail.Show()
sendmail.Mail_DGView.DataSource = Inserted_record_dt
End Sub
私のコードで何が問題なのか教えてください。
あなたがしてくれたことを作ったのですが、動作しますが、datagridviewのIDのカウントが正しく機能しません.1つのレコードを挿入すると、IDは0で始まり、別のレコードを挿入するとIDは1で始まります。最初のレコードと2番目のレコード2を挿入します。別のレコードを挿入するとIDは2で始まり、レコードは2になり、3番目のレコードは4になります。 –
_Inserted_record_dt.Columns(0).AutoIncrementSeed = 1_でIDのカウンタを開始する場所を選択できますデータテーブルを定義するとき – Steve