0
我在使用我的asp.net項目中的UPDATE命令時遇到問題。該項目允許用戶通過登錄頁面登錄,登錄頁面將用戶名和密碼與數據庫中的記錄相匹配,並將用戶名保存爲cookie。然後我有一個設置頁面,我想允許用戶編輯他們的帳戶詳細信息,但是當我使用UPDATE功能時,查詢執行時沒有任何錯誤,但不會發生更新。我正在使用一個AccessDataSource和一個UpdateCommand,希望有人可以找到我的代碼的問題,並引導我的方向正確。 在此先感謝在使用AccessDataSource時UPDATE不起作用vb asp.net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim sqlcmd As String
sqlcmd = "SELECT FirstName, SecondName, UserName, DOB, Password FROM UserTable WHERE UserName = '" & Request.Cookies("UserInfo")("userName") & "'"
AccessDataSource1.SelectCommand = sqlcmd
If (Not Page.IsPostBack) Then
Dim sqlcmd2 As String
sqlcmd2 = "UPDATE [UserTable] SET [FirstName] = ?, [SecondName] = ?, [UserName] = ?, [DOB] = ?, [Password] = ? WHERE [UserID] = ? AND ISNULL (([FirstName] = ?) OR ([FirstName] IS NULL AND ? IS NULL)) AND (([SecondName] = ?) OR ([SecondName] IS NULL AND ? IS NULL)) AND (([UserName] = ?) OR ([UserName] IS NULL AND ? IS NULL)) AND (([DOB] = ?) OR ([DOB] IS NULL AND ? IS NULL)) AND (([Password] = ?) OR ([Password] IS NULL AND ? IS NULL))"
AccessDataSource1.UpdateCommand = sqlcmd2
End If
End Sub
<form id="webform" runat="server">
<div id="content">
<asp:AccessDataSource ID="AccessDataSource1" DataSourceMode = "DataSet" runat="server"
ConflictDetection="CompareAllValues" DataFile="~/Database.mdb"
OldValuesParameterFormatString="original_{0}"
UpdateCommand = "UPDATE [UserTable] SET [FirstName] = ?, [SecondName] = ?, [UserName] = ?, [DOB] = ?, [Password] = ? WHERE [UserID] = ? AND ISNULL (([FirstName] = ?) OR ([FirstName] IS NULL AND ? IS NULL)) AND (([SecondName] = ?) OR ([SecondName] IS NULL AND ? IS NULL)) AND (([UserName] = ?) OR ([UserName] IS NULL AND ? IS NULL)) AND (([DOB] = ?) OR ([DOB] IS NULL AND ? IS NULL)) AND (([Password] = ?) OR ([Password] IS NULL AND ? IS NULL))">
<UpdateParameters>
<asp:Parameter Name="UserID" Type="Int32" />
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="SecondName" Type="String" />
<asp:Parameter Name="UserName" Type="String" />
<asp:Parameter Name="DOB" Type="String" />
<asp:Parameter Name="Password" Type="String" />
<asp:Parameter Name="original_UserID" Type="Int32" />
<asp:Parameter Name="original_FirstName" Type="String" />
<asp:Parameter Name="original_FirstName" Type="String" />
<asp:Parameter Name="original_SecondName" Type="String" />
<asp:Parameter Name="original_SecondName" Type="String" />
<asp:Parameter Name="original_UserName" Type="String" />
<asp:Parameter Name="original_UserName" Type="String" />
<asp:Parameter Name="original_DOB" Type="String" />
<asp:Parameter Name="original_DOB" Type="String" />
<asp:Parameter Name="original_Password" Type="String" />
<asp:Parameter Name="original_Password" Type="String" />
</UpdateParameters>
</asp:AccessDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="AccessDataSource1">
<Columns>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
<div>
</div>
</div>
</form>
很抱歉,如果它是所有有點凌亂,但是這是我的第一篇文章,我不完全知道我在做什麼。