1

アクセス データベースの値を更新しようとしていますが、うまくいかない場合があります。

コード :

<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 = ?)" )

は実際には更新ステートメントであり、これは正常に機能します。ただし、実際の更新ステートメントは Web ページでは機能しません。奇妙なことに、「クエリ ビルダー」でクエリをテストすると、問題なく動作します。

ここで本当に助けが必要です。

ティア

PS ImはVisual Studio 2008を使用し、毎回データソースビルダーを使用しています

4

1 に答える 1

0

Windows 7 (それを使用している場合) は、Access データベースのコピーをデバッグ ファイルに作成し、そのコピーをすべてのデータ変更に使用することが知られています。実際にアクセスしているデータベースが、あなたが考えているコピーであることを確認したい場合があります。

開発マシン全体で同じ名前のファイルを検索します。何が起こるか驚くかもしれません。

于 2013-02-10T23:01:50.990 に答える