私のデータベースに私のdatagridviewからデータを挿入すると、余分な行がデータを含まない最後に挿入されます。どうすればこの問題を克服できますか?データグリッドビューで新しい行をクリックして入力データを開始するたびに、新しい行が下に有効になります。この空白行をデータベースに挿入するのを止める方法はありますか?おかげで、ここにあなたがそれを保存する前にDBNull.Valueのための各セル(または特定のセル)をチェックしてみてください、あなたのループであなたのチェック値のためのあなたの行が必要になります...データベースに余分な行を挿入する挿入
Dim ds As New DataSet
ds.Tables.Add("Main")
Dim col As New DataColumn
Dim dgvCol As New DataGridViewColumn
For Each dgvCol In DataGridView1.Columns
col = New DataColumn(dgvCol.Name)
ds.Tables("Main").Columns.Add(col)
Next
Dim row As DataRow
Dim colcount As Integer = DataGridView1.Columns.Count - 1
For i As Integer = 0 To DataGridView1.Rows.Count - 1
row = ds.Tables("Main").Rows.Add
For Each column As DataGridViewColumn In DataGridView1.Columns
row.Item(column.Index) = DataGridView1.Rows.Item(i).Cells(column.Index).Value
Next
Next
Dim con As New SqlClient.SqlConnection
Dim myCommand As New SqlClient.SqlCommand
Dim dt As New DataTable()
dt = ds.Tables("Main")
For i As Integer = 0 To dt.Rows.Count - 1
Dim myAdapter As New SqlClient.SqlDataAdapter
Dim sql As String = "Insert into details (company, division, date, supplier, material_group, cost, dsc, email, userID, fullName, marketingCode, hccNumber, wbs, qty, currency, timestamp) VALUES ('" & DataGridView1.Rows(i).Cells(company.Name).Value & "', '" & DataGridView1.Rows(i).Cells(division.Name).Value & "','" & calendar & "', '" & DataGridView1.Rows(i).Cells(supplier.Name).Value & "', '" & DataGridView1.Rows(i).Cells(materialGroup.Name).Value & "', '" & DataGridView1.Rows(i).Cells(netprice.Name).Value & "', '" & DataGridView1.Rows(i).Cells(description.Name).Value & "', '" & cmbEmail.SelectedValue & "', '" & id & "', '" & newName & "', '" & DataGridView1.Rows(0).Cells(markCodes.Name).Value & "', '" & DataGridView1.Rows(0).Cells(hccNumber.Name).Value & "', '" & DataGridView1.Rows(i).Cells(wba.Name).Value & "', '" & DataGridView1.Rows(i).Cells(quantity.Name).Value & "', '" & DataGridView1.Rows(i).Cells(currency.Name).Value & "', '" & nowDate & "')"
myCommand.Connection = con
myCommand.CommandText = sql
myAdapter.InsertCommand = myCommand
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myCommand.Connection.Close()
Next.
以下のサンプルコードを参照してください。ループ内でチェックを追加します。空のグリッドビュー。 – user765942
さて、DBNullチェックが必要です。 – Simon