Question I need to modify the simple insert command code here

ebrahim

Member
Joined
Jul 13, 2011
Messages
8
Programming Experience
Beginner
I need to modify the simple insert command code here

PrivateSub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click
Dim connectionString AsString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DataGridSaveDB.accdb;Persist Security Info=True"
' If you are using Sql server replace "OleDb" with "Sql" for example
' OleDBConnection --> SqlConnection
' OleDbCommand --> SqlCommand
Using connection AsNew OleDbConnection(connectionString)
Dim cmdText AsString = "INSERT INTO DGV (ColumnA, ColumnB, ColumnC) VALUES (@ColumnA, @ColumnB, @ColumnC)"
Dim command AsNew OleDbCommand(cmdText, connection)
command.Parameters.Add(New OleDbParameter("@ColumnA", OleDbType.VarWChar))
command.Parameters.Add(New OleDbParameter("@ColumnB", OleDbType.VarWChar))
command.Parameters.Add(New OleDbParameter("@ColumnC", OleDbType.VarWChar))
connection.Open()
Dim transaction As OleDbTransaction = connection.BeginTransaction()
command.Transaction = transaction
Try
For i AsInteger = 0 To DataGridView2.Rows.Count - 2
command.Parameters("@ColumnA").Value = DataGridView2.Rows(i).Cells(0).FormattedValue
command.Parameters("@ColumnB").Value = DataGridView2.Rows(i).Cells(1).FormattedValue
command.Parameters("@ColumnC").Value = DataGridView2.Rows(i).Cells(2).FormattedValue
command.ExecuteNonQuery()
Next i
transaction.Commit()
Catch ex As Exception
Try
transaction.Rollback()
Catch rollBackEx As Exception
MessageBox.Show(rollBackEx.Message)
EndTry
EndTry
End Using
EndSub


it is Effective But I need to add a condition which is: Add only the rows where the column 4 is checked

Note: the type of Column 4 is DataGridViewCheckBoxColumn



thank you
 
I need to modify the simple insert command code here
it is Effective But I need to add a condition which is: Add only the rows where the column 4 is checked

Hi. I think it would be better to put that logic in the VB code and only go to the DB when it's a go. So, I'd do it like this. Can you work out the actual VB code?

For i AsInteger = 0 To DataGridView2.Rows.Count - 2
    'If column 4 is checked Then
        command.Parameters("@ColumnA").Value = DataGridView2.Rows(i).Cells(0).FormattedValue 
        command.Parameters("@ColumnB").Value = DataGridView2.Rows(i).Cells(1).FormattedValue 
        command.Parameters("@ColumnC").Value = DataGridView2.Rows(i).Cells(2).FormattedValue 
        command.ExecuteNonQuery() 
    'End If
Next i 
 
yes it right :) it must be like these

For i As Integer = 0 To DataGridView1.Rows.Count - 2
If DataGridView1.Rows(i).Cells(3).Value = True Then
command.Parameters("@ColumnA").Value = DataGridView1.Rows(i).Cells(0).FormattedValue
command.Parameters("@ColumnB").Value = DataGridView1.Rows(i).Cells(1).FormattedValue
command.Parameters("@ColumnC").Value = DataGridView1.Rows(i).Cells(2).FormattedValue
command.ExecuteNonQuery()
End If
Next i

thank you
 
Back
Top