G
Guest
On a form - I have a datagridview which is docked to the entire form. The
datagridview allows users to Delete and/or Add Rows. On the Form_Load event
I Fill the datagridview source table with a sql DataAdapter (da)
da.SelectCommand.CommandText = "Select * from Servertbl1"
da.Fill(ds, "tbl1")
so far, so good. If I add a row to the datagridview I use the following
sqlDataAdapter code to update the server table - which works OK when used
alone in the Form Closing Event.
Private Sub Form5_FormClosing(...) Handles Me.FormClosing
If bRowAdded.Equals(True) Then
da.InsertCommand.Parameters.Clear()
da.InsertCommand.CommandText = "Insert Into ServerTbl Select @PromoCodes,
@StartDate, @EndDate, @Description"
da.InsertCommand.Parameters.Add("@PromoCodeID", SqlDbType.VarChar, 50,
"PromoCodeID")
da.InsertCommand.Parameters.Add("@StartDate", SqlDbType.DateTime, 8,
"StartDate")
da.InsertCommand.Parameters.Add("@EndDate", SqlDbType.DateTime, 8,
"EndDate")
da.InsertCommand.Parameters.Add("@Description", SqlDbType.VarChar, 500,
"Description")
da.Update(ds, "tbl1")
End If
End Sub
If I remove a row from the datagridview I use this code on the Form_Closing
Event to delete the row on the server table. This also works OK by itself if
I dont include the Insert code.
Private Sub Form5_FormClosing(...) Handles Me.FormClosing
If bRowDeleted.Equals(True) Then
da.DeleteCommand.Parameters.Clear()
da.DeleteCommand.CommandText = "Delete PromoCodes Where PromoCodeID =
@PromoCodeID"
da.DeleteCommand.Parameters.Add("@PromoCodeID", SqlDbType.VarChar, 50,
"PromoCodeID")
da.Update(ds, "tbl1")
End If
End Sub
But if I combine the Insert and Delete Process in the form closing event,
then nothing happens to the server table and the form wont close - just
hangs. I tried placing the Insert process in the datagridview Leave Event -
which also works OK if I dont have the Delete code in the Closing Event, but
if I add the Delete process in the closing event or to the datagridview Leave
event, then again, nothing happens to the Server Table and the form wont
close - just hangs. It is like I can have one or the other.
My specs are for users to be able to add a row or remove a row (but not
Update a row) directly from the datagridview with no buttons/menu buttons...
(note: this is not a detail data table - just an ancillary table).
I want to stay with the DataAdapter because it is much easier to deal with
contention - deadlocking than if I use a straight forward
Command.ExecuteNonQuery. How can I make this happen with a sqldataAdapter?
Should I create and implement an interface maybe? Any suggestions
appreciated.
Thanks,
Rich
datagridview allows users to Delete and/or Add Rows. On the Form_Load event
I Fill the datagridview source table with a sql DataAdapter (da)
da.SelectCommand.CommandText = "Select * from Servertbl1"
da.Fill(ds, "tbl1")
so far, so good. If I add a row to the datagridview I use the following
sqlDataAdapter code to update the server table - which works OK when used
alone in the Form Closing Event.
Private Sub Form5_FormClosing(...) Handles Me.FormClosing
If bRowAdded.Equals(True) Then
da.InsertCommand.Parameters.Clear()
da.InsertCommand.CommandText = "Insert Into ServerTbl Select @PromoCodes,
@StartDate, @EndDate, @Description"
da.InsertCommand.Parameters.Add("@PromoCodeID", SqlDbType.VarChar, 50,
"PromoCodeID")
da.InsertCommand.Parameters.Add("@StartDate", SqlDbType.DateTime, 8,
"StartDate")
da.InsertCommand.Parameters.Add("@EndDate", SqlDbType.DateTime, 8,
"EndDate")
da.InsertCommand.Parameters.Add("@Description", SqlDbType.VarChar, 500,
"Description")
da.Update(ds, "tbl1")
End If
End Sub
If I remove a row from the datagridview I use this code on the Form_Closing
Event to delete the row on the server table. This also works OK by itself if
I dont include the Insert code.
Private Sub Form5_FormClosing(...) Handles Me.FormClosing
If bRowDeleted.Equals(True) Then
da.DeleteCommand.Parameters.Clear()
da.DeleteCommand.CommandText = "Delete PromoCodes Where PromoCodeID =
@PromoCodeID"
da.DeleteCommand.Parameters.Add("@PromoCodeID", SqlDbType.VarChar, 50,
"PromoCodeID")
da.Update(ds, "tbl1")
End If
End Sub
But if I combine the Insert and Delete Process in the form closing event,
then nothing happens to the server table and the form wont close - just
hangs. I tried placing the Insert process in the datagridview Leave Event -
which also works OK if I dont have the Delete code in the Closing Event, but
if I add the Delete process in the closing event or to the datagridview Leave
event, then again, nothing happens to the Server Table and the form wont
close - just hangs. It is like I can have one or the other.
My specs are for users to be able to add a row or remove a row (but not
Update a row) directly from the datagridview with no buttons/menu buttons...
(note: this is not a detail data table - just an ancillary table).
I want to stay with the DataAdapter because it is much easier to deal with
contention - deadlocking than if I use a straight forward
Command.ExecuteNonQuery. How can I make this happen with a sqldataAdapter?
Should I create and implement an interface maybe? Any suggestions
appreciated.
Thanks,
Rich