使用ASP.NET2010从文本框更新SQL记录
我正在将一个变量(记录ID)从一个具有数据网格的表单传递到另一个webform,以便更新该特定记录。我的问题出现在我尝试更新记录时。文本框的值会更改为新数据,但程序会在更改发生之前传递文本框的值。 我的快速解决方案是在按钮上添加回发,只是为了检查这是否会产生影响。只有当我硬编码记录ID字段,回发会删除我传递给新表单的参数时,这种方法才有效 有人知道如何解决这个问题吗?正如你所看到的,我是ASP.Net的新手 这是按钮的ASP代码:使用ASP.NET2010从文本框更新SQL记录,asp.net,Asp.net,我正在将一个变量(记录ID)从一个具有数据网格的表单传递到另一个webform,以便更新该特定记录。我的问题出现在我尝试更新记录时。文本框的值会更改为新数据,但程序会在更改发生之前传递文本框的值。 我的快速解决方案是在按钮上添加回发,只是为了检查这是否会产生影响。只有当我硬编码记录ID字段,回发会删除我传递给新表单的参数时,这种方法才有效 有人知道如何解决这个问题吗?正如你所看到的,我是ASP.Net的新手 这是按钮的ASP代码: asp:Button ID=“btnSaveChanges”ru
asp:Button ID=“btnSaveChanges”runat=“server”Text=“Save Changes”postbackurl=“~/EditContact.aspx”Width=“101px”
下面是我必须更新记录的VB代码:
Dim tempContactID As String = Request.QueryString().ToString
Dim objConnection As OleDbConnection = Nothing
Dim objCmd As OleDbCommand = Nothing
Dim strConnection As String, strSQL As String
'Connection String to Database
strConnection = "provider=SQLOLEDB;data source=HP-G640;Database=Contacts;user ID=contactsUser;password=password;"
objConnection = New OleDbConnection(strConnection)
objConnection.ConnectionString = strConnection
objConnection.Open()
strSQL = "update ContactDetails set ContactFirstName = '" & txtFirstName.Text & "', ContactMiddleName = '" & txtMiddleName.Text & "',ContactLastName = '" & txtLastName.Text & "', ContactAddress = '" & txtAddress.Text & "', ContactCity = '" & txtCity.Text & "', ContactState = '" & txtState.Text & "', ContactZipCode = '" & txtZipCode.Text & "', ContactPhone = '" & txtHomePhone.Text & "', ContactCell = '" & txtCell.Text & "', ContactEmail='" & txtEmail.Text & "' where ContactID = 6"
objCmd = New OleDbCommand(strSQL, objConnection)
objCmd.ExecuteNonQuery()
'Close Connection
objConnection.Close()
Response.Write("Record updated successfully")
在按钮上使用事件而不是回发url
<asp:Button ID="btnSaveChanges" runat="server" Text="Save Changes" OnClick="btnSaveChanges_Click"
Width="101px" />
“程序正在更改前传递文本框的值。”-我不太清楚你的意思。您是否在网络表单中进行更新?我认为我们需要在事件发生之前看到更多的代码。页面加载。如果(!Page.IsPostBack)
void btnSaveChanges_Click(object sender, EventArgs e)
{
//do your work
}