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
--------------------------------
<aspataGrid 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>
</aspataGrid>
------------------------------------
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
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
--------------------------------
<aspataGrid 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>
</aspataGrid>
------------------------------------
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