2013-02-10 9 views
1

내 액세스 데이터베이스에서 값을 업데이트하려고하지만 일부 경우에 작동하지 않습니다.asp.net 액세스 데이터베이스가 업데이트되지 않습니다.

코드 :

<form id="form1" runat="server"> 
<asp:AccessDataSource ID="AccessDataSource1" runat="server" 
     DataFile="~/App_Data/Database1.mdb" 
     DeleteCommand="UPDATE DT_Person SET Deleted = NOW() WHERE (Person_Ref = ?)" 
     InsertCommand="INSERT INTO [DT_Person] ([Person_Ref], [Created], [Updated], [Deleted],  [Person_Name], [Person_No]) VALUES (?, ?, ?, ?, ?, ?)" 
     OldValuesParameterFormatString="original_{0}" 
     SelectCommand="SELECT * FROM [DT_Person]" 
     UpdateCommand="UPDATE DT_Person SET Updated = NOW(), Person_Name = ?, Person_No = ? WHERE (Person_Ref = ?)"> 
     <DeleteParameters> 
      <asp:Parameter Name="original_Person_Ref" Type="Int32" /> 
     </DeleteParameters> 
     <UpdateParameters> 
      <asp:Parameter Name="Created" Type="DateTime" /> 
      <asp:Parameter Name="Updated" Type="DateTime" /> 
      <asp:Parameter Name="Deleted" Type="DateTime" /> 
      <asp:Parameter Name="Person_Name" Type="String" /> 
      <asp:Parameter Name="Person_No" Type="String" /> 
      <asp:Parameter Name="original_Person_Ref" Type="Int32" /> 
     </UpdateParameters> 
     <InsertParameters> 
      <asp:Parameter Name="Person_Ref" Type="Int32" /> 
      <asp:Parameter Name="Created" Type="DateTime" /> 
      <asp:Parameter Name="Updated" Type="DateTime" /> 
      <asp:Parameter Name="Deleted" Type="DateTime" /> 
      <asp:Parameter Name="Person_Name" Type="String" /> 
      <asp:Parameter Name="Person_No" Type="String" /> 
     </InsertParameters> 
    </asp:AccessDataSource> 
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
     AllowSorting="True" AutoGenerateColumns="False" BackColor="White" 
     BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
     DataKeyNames="Person_Ref" DataSourceID="AccessDataSource1"> 
     <RowStyle ForeColor="#000066" /> 
     <Columns> 
      <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" 
       ShowSelectButton="True" /> 
      <asp:BoundField DataField="Person_Ref" HeaderText="Person_Ref" 
       InsertVisible="False" ReadOnly="True" SortExpression="Person_Ref" /> 
      <asp:BoundField DataField="Created" HeaderText="Created" 
       SortExpression="Created" /> 
      <asp:BoundField DataField="Updated" HeaderText="Updated" 
       SortExpression="Updated" /> 
      <asp:BoundField DataField="Deleted" HeaderText="Deleted" 
       SortExpression="Deleted" /> 
      <asp:BoundField DataField="Person_Name" HeaderText="Person_Name" 
       SortExpression="Person_Name" /> 
      <asp:BoundField DataField="Person_No" HeaderText="Person_No" 
       SortExpression="Person_No" /> 
     </Columns> 

당신이 볼 수 있듯이, 삭제 명령

(DeleteCommand="UPDATE DT_Person SET Deleted = NOW() WHERE (Person_Ref = ?)") 

정말 업데이트 진술이 잘 작동합니다. 그러나 실제 업데이트 문은 웹 페이지에서 작동하지 않습니다. 이상한 것은 '쿼리 빌더'에서 쿼리를 테스트하면 정상적으로 작동한다는 것입니다.

정말 도움이 필요합니다.

TIA

P. Visual Studio 2008을 사용할 때마다 데이터 소스 빌더를 사용할 때마다

+0

난 그냥 테스트하고 그것은 나를 위해 작동합니다. 어떤 오류 메시지가 나타 납니까? 액세스 파일과 폴더에 대한 올바른 사용 권한을 갖고 있습니까? – Fionnuala

답변

0

Windows 7 (사용중인 경우)은 디버그 파일에서 Access 데이터베이스 사본을 만들어 모든 데이터에 사용합니다. 변경. 실제로 액세스하는 데이터베이스가 생각하는 복사본인지 확인할 수 있습니다.

전체 개발 컴퓨터에서 같은 이름의 파일을 검색하십시오. 나타나면 놀랄 것입니다.

관련 문제