Problem with Grid ?

E

Erland

Hi all,

I have created a simple database table in ACCESS named as "Users" that
contains only two fields "UserID" ( Primary key )and "Password". I am
having problems while UPDATING the records in DataGrid. When i click
Edit button in datagrid and edit my values it actually doesn't update
the vales with newly entered values rather it keep on showing the
previous records. following is the code I used to create datagrid
--------------------------------
<asp:DataGrid id="DataGrid1" runat="server" OnEditCommand="DoItemEdit"
DataKeyField="UserID" AutoGenerateColumns="false"
onUpdateCommand="DoItemUpdate" CellPadding="2">
<COLUMNS>
<asp:EditCommandColumn HeaderText="Edit"
EditText="Edit" ButtonType="LinkButton" CancelText="Cancel"
UpdateText="Update"></asp:EditCommandColumn>
<asp:BoundColumn HeaderText="User Name"
DataField="UserID" ></asp:BoundColumn>
<asp:BoundColumn HeaderText="Password"
DataField="Password" ></asp:BoundColumn>
</COLUMNS>
</asp:DataGrid>
------------------------------------

and following are my Edit and update methods in Vb.net

Sub DoItemUpdate(objSource as Object, objArgs as
DataGridCommandEventArgs)


Dim username as TextBox
Dim password as TextBox

Dim u,pass,userid as string

username=objArgs.Item.Cells(1).Controls(0)
u = username.Text

password=objArgs.Item.Cells(2).Controls(0)
pass=password.Text
Label2.Text=u

userid= DataGrid1.DataKeys(objArgs.Item.ItemIndex)
Label1.text =pass

'"UPDATE [Users] SET [UserID]=@UserID, [Password]=@Password WHERE
([Users].[UserID]"& _
'" = @UserID)"
Dim sql as String="UPDATE [Users] SET [UserID]='" & u & "',
[Password]='" & pass & _
"' WHERE [Users].[UserID]='"& userid &"'"
Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;
Ole DB Services=-4; Data Source=C:\IssueTracker"& _
"\Access.mdb"
Dim dbConnection As OleDbConnection = New
OleDbConnection(connectionString)
Dim dbCommand As OleDbCommand = New OleDbCommand
dbCommand.CommandText = sql
dbCommand.Connection = dbConnection


dbConnection.Open()

dbCommand.ExecuteNonQuery()




dbConnection.Close()

DataGrid1.EditItemIndex = -1
BindData()

end sub
--------------------------

Sub DoItemEdit(objSource as Object, objArgs as
DataGridCommandEventArgs)

DataGrid1.EditItemIndex=objArgs.Item.ItemIndex
BindData()

end sub
----------------------------
and here is the BindData ()
Sub BindData()

Dim connectionString As String =
"Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data
Source=C:\IssueTracker"& _
"\Access.mdb"
Dim dbConnection As System.Data.IDbConnection = New
System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT [Users].* FROM
[Users]"
Dim dbCommand As OleDbCommand = New OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dataAdapter As OleDbDataAdapter = New
OleDbDataAdapter
dataAdapter.SelectCommand = dbCommand

dataAdapter.Fill(dataSet,"Users")
DataGrid1.DataSource=dataSet
DataGrid1.DataBind()
end sub

----------------------------------------------

I understand that it's a lengthy question and might take your time. But
being new to asp.net I am really stumped and I have posted my question
after turning pages of a book and relentless GOOGling and I couldn't
find a solution to above.
Any help, suggestions or insights will be highly appreciated. I really
appreciate your time and help.
Thanks in advance.
Thanks,
Erland
 
E

Erland

Hi,

I am still stumped and couldn't really figure out what the problem is,
so I will really appreciate any help or insight.

Thanks,
Erland said:
Hi all,

I have created a simple database table in ACCESS named as "Users" that
contains only two fields "UserID" ( Primary key )and "Password". I am
having problems while UPDATING the records in DataGrid. When i click
Edit button in datagrid and edit my values it actually doesn't update
the vales with newly entered values rather it keep on showing the
previous records. following is the code I used to create datagrid
--------------------------------
<asp:DataGrid id="DataGrid1" runat="server" OnEditCommand="DoItemEdit"
DataKeyField="UserID" AutoGenerateColumns="false"
onUpdateCommand="DoItemUpdate" CellPadding="2">
<COLUMNS>
<asp:EditCommandColumn HeaderText="Edit"
EditText="Edit" ButtonType="LinkButton" CancelText="Cancel"
UpdateText="Update"></asp:EditCommandColumn>
<asp:BoundColumn HeaderText="User Name"
DataField="UserID" ></asp:BoundColumn>
<asp:BoundColumn HeaderText="Password"
DataField="Password" ></asp:BoundColumn>
</COLUMNS>
</asp:DataGrid>
------------------------------------

and following are my Edit and update methods in Vb.net

Sub DoItemUpdate(objSource as Object, objArgs as
DataGridCommandEventArgs)


Dim username as TextBox
Dim password as TextBox

Dim u,pass,userid as string

username=objArgs.Item.Cells(1).Controls(0)
u = username.Text

password=objArgs.Item.Cells(2).Controls(0)
pass=password.Text
Label2.Text=u

userid= DataGrid1.DataKeys(objArgs.Item.ItemIndex)
Label1.text =pass

'"UPDATE [Users] SET [UserID]=@UserID, [Password]=@Password WHERE
([Users].[UserID]"& _
'" = @UserID)"
Dim sql as String="UPDATE [Users] SET [UserID]='" & u & "',
[Password]='" & pass & _
"' WHERE [Users].[UserID]='"& userid &"'"
Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;
Ole DB Services=-4; Data Source=C:\IssueTracker"& _
"\Access.mdb"
Dim dbConnection As OleDbConnection = New
OleDbConnection(connectionString)
Dim dbCommand As OleDbCommand = New OleDbCommand
dbCommand.CommandText = sql
dbCommand.Connection = dbConnection


dbConnection.Open()

dbCommand.ExecuteNonQuery()




dbConnection.Close()

DataGrid1.EditItemIndex = -1
BindData()

end sub
--------------------------

Sub DoItemEdit(objSource as Object, objArgs as
DataGridCommandEventArgs)

DataGrid1.EditItemIndex=objArgs.Item.ItemIndex
BindData()

end sub
----------------------------
and here is the BindData ()
Sub BindData()

Dim connectionString As String =
"Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data
Source=C:\IssueTracker"& _
"\Access.mdb"
Dim dbConnection As System.Data.IDbConnection = New
System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT [Users].* FROM
[Users]"
Dim dbCommand As OleDbCommand = New OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dataAdapter As OleDbDataAdapter = New
OleDbDataAdapter
dataAdapter.SelectCommand = dbCommand

dataAdapter.Fill(dataSet,"Users")
DataGrid1.DataSource=dataSet
DataGrid1.DataBind()
end sub

----------------------------------------------

I understand that it's a lengthy question and might take your time. But
being new to asp.net I am really stumped and I have posted my question
after turning pages of a book and relentless GOOGling and I couldn't
find a solution to above.
Any help, suggestions or insights will be highly appreciated. I really
appreciate your time and help.
Thanks in advance.
Thanks,
Erland
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,070
Latest member
BiogenixGummies

Latest Threads

Top