2017-05-12 4 views
0

VisualStudioでグラフィックインターフェイスを使用して独自の更新を試みていますが、更新が機能しません。ASP sqlDataSourceで独自の更新ステートメントを作成

質問ビルダーでテストするとすべて動作しますが、更新をクリックした後にWebページを実行すると、グリッドに追加されているので、更新が何もしなかったため以前の状態に復元されます。

Params("ID,IsCompleted")がGridViewのプロパティでDataKeyNamesに追加されています。 残念ながら、グラフィカルインターフェイスを使用して解決策を見つけることができませんでした。

enter image description here

答えて

0

のSqlDataSourceのOnUpdatedイベントをサブスクライブ、AffectedRows値を確認してください。
REFのMSDN SqlDataSource.UpdateCommand
コード

private void OnDSUpdatedHandler(Object source, SqlDataSourceStatusEventArgs e) { 
    if (e.AffectedRows > 0) { 
     // Perform any additional processing, 
     // such as setting a status label after the operation. 
     Label1.Text = Request.LogonUserIdentity.Name + 
      " changed user information successfully!";  
    } 
    else { 
     Label1.Text = "No data updated!"; 
    } 
} 

のaspx

<asp:SqlDataSource 
    id="SqlDataSource1" 
    runat="server" 
    DataSourceMode="DataSet" 
    ConnectionString="<%$ ConnectionStrings:MyNorthwind%>" 
    SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees" 
    UpdateCommand="Update Employees SET [email protected],[email protected],[email protected] WHERE [email protected]" 
    OnUpdated="OnDSUpdatedHandler"> 
</asp:SqlDataSource> 

<asp:GridView 
    id="GridView1" 
    runat="server" 
    AutoGenerateColumns="False" 
    DataKeyNames="EmployeeID" 
    AutoGenerateEditButton="True" 
    DataSourceID="SqlDataSource1"> 
    <columns> 
     <asp:BoundField HeaderText="First Name" DataField="FirstName" /> 
     <asp:BoundField HeaderText="Last Name" DataField="LastName" /> 
     <asp:BoundField HeaderText="Title" DataField="Title" /> 
    </columns> 
</asp:GridView> 

<asp:Label 
    id="Label1" 
    runat="server"> 
</asp:Label> 

他REF SqlDataSourceView.OnUpdating

+0

残念ながら、私はラベルに情報を受け取る "serverNameの/ユーザーが正常にユーザー情報を変更しました!"それでもデータベースのレコードは変更されませんでした。 – Robert

+0

sqlプロファイラを使用してsqlを調べるか、web.configのConnectionString name MyNorthwindをチェックできますか。 – Rainmaker

関連する問題