Adding to a Bound DataGrid: What the @#$!% am I doing wrong!

  • Thread starter Thread starter Aaron Ackerman
  • Start date Start date
A

Aaron Ackerman

I cannot a row to this bound DataGrid to SAVE MY LIFE! I have tried
everything and I am at a loss. The using goes into add mode with the add
button adds his data then updates with the update button, seems simple.
I am using ALL visual controls (supposedly to simplify things. If I was not
using the visual controls and calling an ExecuteNonQuery no prob.
Please look at my code and tell me what I am doing wrong. Also, what are the
advatages and disadvantages of using the visual controls and typed Datasets.
THANKS SO MUCH!!!!


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
If IsPostBack Then
If Not (Request.Form("btnAdd") Is Nothing) Then
Add()
End If
Else
BindGrid()
End If
End Sub


Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
End Sub

Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnUpdate.Click
Update()
End Sub



' Bind the database to the table
Private Sub BindGrid()
vdaPasswords.Fill(dsPasswords1)

If Session("dsPasswords") Is Nothing Then
Session("dsPasswords") = dsPasswords1
End If

DataGrid1.DataSource = dsPasswords1
DataGrid1.DataBind()

End Sub

' The "Add" sub
Private Sub Add()

Dim dr As dsPasswords.PasswordsRow

If dsPasswords1 Is Nothing Then
dsPasswords1 = Session("dsPasswords")
End If

dr = dsPasswords1.Tables("Passwords").NewRow()
dr("NUMBER") = 80
dr("USERNAME") = "SDASD"
dsPasswords1.Tables("Passwords").Rows.InsertAt(dr, 0)
DataGrid1.EditItemIndex = 0
BindGrid()

End Sub

' User clicked "update".
Sub Update()
' Either insert a new row or update the existing row here,
' depending on whether adding or not.
DataGrid1.EditItemIndex = -1
BindGrid()
End Sub
 
Hi Aaron,

I have checked your code carefully, and found that the problem should be
vdaPasswords. In BindGrid, dsPasswords1 is filled again, so the new datarow
lost. Please see my comments below:


Private Sub Add()

Dim dr As dsPasswords.PasswordsRow

If dsPasswords1 Is Nothing Then
dsPasswords1 = Session("dsPasswords")
End If

dr = dsPasswords1.Tables("Passwords").NewRow()
dr("NUMBER") = 80
dr("USERNAME") = "SDASD"
dsPasswords1.Tables("Passwords").Rows.InsertAt(dr, 0) //**** Once
you click Add button, a datarow was inserted into the dsPasswords1
DataGrid1.EditItemIndex = 0
BindGrid()//****Then call BindGrid

End Sub

Private Sub BindGrid()
vdaPasswords.Fill(dsPasswords1)//****But here, dsPasswords1 is filled
again, so the new datarow lost.

If Session("dsPasswords") Is Nothing Then
Session("dsPasswords") = dsPasswords1
End If

DataGrid1.DataSource = dsPasswords1
DataGrid1.DataBind()

End Sub

So you should update vdaPasswords after you add a new datarow to
dsPasswords1.

Please check these articles for more information:
Updating the Database with a DataAdapter and the DataSet
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/htm
l/cpconupdatingdatabasewithdataadapterdataset.asp

Working with a Typed DataSet
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/htm
l/cpconworkingwithtypeddataset.asp


Hope this helps.

Best Regards,
Lewis Wang

This posting is provided "AS IS" with no warranties, and confers no rights.


--------------------
| From: "Aaron Ackerman" <[email protected]>
| Subject: Adding to a Bound DataGrid: What the @#$!% am I doing wrong!
| Date: Wed, 23 Jul 2003 12:40:21 -0400
| Lines: 76
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
| Message-ID: <[email protected]>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: ric-64-83-27-134-serial-sta.t1.cavtel.net 64.83.27.134
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP11.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework.aspnet:161436
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| I cannot a row to this bound DataGrid to SAVE MY LIFE! I have tried
| everything and I am at a loss. The using goes into add mode with the add
| button adds his data then updates with the update button, seems simple.
| I am using ALL visual controls (supposedly to simplify things. If I was
not
| using the visual controls and calling an ExecuteNonQuery no prob.
| Please look at my code and tell me what I am doing wrong. Also, what are
the
| advatages and disadvantages of using the visual controls and typed
Datasets.
| THANKS SO MUCH!!!!
|
|
| Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
| System.EventArgs) Handles MyBase.Load
| 'Put user code to initialize the page here
| If IsPostBack Then
| If Not (Request.Form("btnAdd") Is Nothing) Then
| Add()
| End If
| Else
| BindGrid()
| End If
| End Sub
|
|
| Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As
| System.EventArgs)
| End Sub
|
| Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As
| System.EventArgs) Handles btnUpdate.Click
| Update()
| End Sub
|
|
|
| ' Bind the database to the table
| Private Sub BindGrid()
| vdaPasswords.Fill(dsPasswords1)
|
| If Session("dsPasswords") Is Nothing Then
| Session("dsPasswords") = dsPasswords1
| End If
|
| DataGrid1.DataSource = dsPasswords1
| DataGrid1.DataBind()
|
| End Sub
|
| ' The "Add" sub
| Private Sub Add()
|
| Dim dr As dsPasswords.PasswordsRow
|
| If dsPasswords1 Is Nothing Then
| dsPasswords1 = Session("dsPasswords")
| End If
|
| dr = dsPasswords1.Tables("Passwords").NewRow()
| dr("NUMBER") = 80
| dr("USERNAME") = "SDASD"
| dsPasswords1.Tables("Passwords").Rows.InsertAt(dr, 0)
| DataGrid1.EditItemIndex = 0
| BindGrid()
|
| End Sub
|
| ' User clicked "update".
| Sub Update()
| ' Either insert a new row or update the existing row here,
| ' depending on whether adding or not.
| DataGrid1.EditItemIndex = -1
| BindGrid()
| End Sub
|
|
|
|
|
 
Hi Aaron,

Thank you for your reply. I wrote a sample code and it works fine on my
machine. You can test it on your machine to see if it helps.

Please let me know if it helps. Thank you.

Lewis,

This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
| From: "Aaron Ackerman" <[email protected]>
| References: <[email protected]>
| Subject: Re: Adding to a Bound DataGrid: What the @#$!% am I doing wrong!
| Date: Mon, 28 Jul 2003 09:50:10 -0400
| Lines: 85
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
| Message-ID: <[email protected]>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| NNTP-Posting-Host: ric-64-83-27-134-serial-sta.t1.cavtel.net 64.83.27.134
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework.aspnet:162588
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| That doesn't work.
|
| | > I cannot a row to this bound DataGrid to SAVE MY LIFE! I have tried
| > everything and I am at a loss. The using goes into add mode with the add
| > button adds his data then updates with the update button, seems simple.
| > I am using ALL visual controls (supposedly to simplify things. If I was
| not
| > using the visual controls and calling an ExecuteNonQuery no prob.
| > Please look at my code and tell me what I am doing wrong. Also, what are
| the
| > advatages and disadvantages of using the visual controls and typed
| Datasets.
| > THANKS SO MUCH!!!!
| >
| >
| > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
| > System.EventArgs) Handles MyBase.Load
| > 'Put user code to initialize the page here
| > If IsPostBack Then
| > If Not (Request.Form("btnAdd") Is Nothing) Then
| > Add()
| > End If
| > Else
| > BindGrid()
| > End If
| > End Sub
| >
| >
| > Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As
| > System.EventArgs)
| > End Sub
| >
| > Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As
| > System.EventArgs) Handles btnUpdate.Click
| > Update()
| > End Sub
| >
| >
| >
| > ' Bind the database to the table
| > Private Sub BindGrid()
| > vdaPasswords.Fill(dsPasswords1)
| >
| > If Session("dsPasswords") Is Nothing Then
| > Session("dsPasswords") = dsPasswords1
| > End If
| >
| > DataGrid1.DataSource = dsPasswords1
| > DataGrid1.DataBind()
| >
| > End Sub
| >
| > ' The "Add" sub
| > Private Sub Add()
| >
| > Dim dr As dsPasswords.PasswordsRow
| >
| > If dsPasswords1 Is Nothing Then
| > dsPasswords1 = Session("dsPasswords")
| > End If
| >
| > dr = dsPasswords1.Tables("Passwords").NewRow()
| > dr("NUMBER") = 80
| > dr("USERNAME") = "SDASD"
| > dsPasswords1.Tables("Passwords").Rows.InsertAt(dr, 0)
| > DataGrid1.EditItemIndex = 0
| > BindGrid()
| >
| > End Sub
| >
| > ' User clicked "update".
| > Sub Update()
| > ' Either insert a new row or update the existing row here,
| > ' depending on whether adding or not.
| > DataGrid1.EditItemIndex = -1
| > BindGrid()
| > End Sub
| >
| >
| >
| >
|
|
|
 
Back
Top