2013-03-26 2 views
0

У меня возникают проблемы с использованием команды UPDATE в моем проекте asp.net. Проект позволяет пользователю войти в систему с помощью страницы входа, которая соответствует имени пользователя и паролю для записи в базе данных и сохраняет имя пользователя в качестве файла cookie. Затем у меня есть страница настроек, которую я хочу разрешить пользователю редактировать данные своей учетной записи, но когда я использую функцию UPDATE, запрос выполняется без каких-либо ошибок, но обновление не происходит. Я использую AccessDataSource и UpdateCommand, надеюсь, кто-то может найти проблему с моим кодом и направлять меня в правильном направлении. Заранее спасибоUPDATE не работает при использовании с AccessDataSource 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> 

К сожалению, если это все немного неаккуратно, но это мой первый пост, и я не совсем уверен, что я делаю.

ответ

0

попробуйте добавить

accessdatasource1.update()