2017-08-01 9 views
0

GridViewの更新時にリンクを再度読み込んで読み込みました。私はこれに新しいですが、私はGridViewの更新作業を行うことはできません。一見できますか?GridViewのデバッグに失敗しました。c#

私は背後にあるコードのデバッグのために試してみました何
    <asp:SqlDataSource ID="sds_Drivers" runat="server" ConnectionString="<%$ ConnectionStrings:ThinairConnectionString %>" SelectCommand="SELECT [User_Id], [User_Active], [User_Reference], [User_Name], [User_Login], [User_Password] FROM [Users] WHERE ([User_Acct_Number] = @User_Acct_Number) ORDER BY [User_Name]" UpdateCommand="UPDATE [Users] SET [User_Active] = @User_Active, [User_Reference] = @User_Reference, [User_Name] = @User_Name, [User_Login] = @User_Login, [User_Password] = @User_Password WHERE ([User_Id] = @User_Id)" OnUpdating="sds_Drivers_Updating"> 
        <SelectParameters> 
         <asp:SessionParameter Name="User_Acct_Number" SessionField="Acct_Number" Type="String" /> 
        </SelectParameters> 
        <UpdateParameters> 
         <asp:Parameter Name="User_Active" Type="Int32" /> 
         <asp:Parameter Name="User_Reference" Type="String" /> 
         <asp:Parameter Name="User_Name" Type="String" /> 
         <asp:Parameter Name="User_Login" Type="String" /> 
         <asp:Parameter Name="User_Password" Type="String" /> 
         <asp:Parameter Name="User_Id" Type="Int32" /> 
        </UpdateParameters> 
       </asp:SqlDataSource> 
      </p> 
      <p> 
       <asp:GridView ID="gv_Drivers" runat="server" 
        Width="100%" 
        AllowSorting="True" 
        AutoGenerateColumns="False" 
        DataKeyNames="User_Id" 
        ConvertEmptyStringToNull="False" 
        DataSourceID="sds_Drivers" 
        CellSpacing="2" 
        CellPadding="2" 
        HeaderStyle-ForeColor="Black" 
        HeaderStyle-Wrap="true"> 
        <Columns> 
         <asp:CommandField EditText="Edit" ShowEditButton="True" ValidationGroup="Group3" /> 
         <asp:BoundField DataField="User_Id" HeaderText="User Id" ReadOnly="true" SortExpression="User_Id" /> 
         <asp:BoundField DataField="User_Active" HeaderText="1 = Active/0 = Inactive" SortExpression="User_Active" /> 
         <asp:BoundField DataField="User_Reference" HeaderText="Your Reference" SortExpression="User_Reference" /> 
         <asp:BoundField DataField="User_Name" HeaderText="User Name" SortExpression="User_Name" /> 
         <asp:BoundField DataField="User_Login" HeaderText="User Login" SortExpression="User_Login" /> 
         <asp:BoundField DataField="User_Password" HeaderText="User Password" SortExpression="User_Password" /> 
        </Columns> 
        <EmptyDataTemplate> 
         No Drivers Loaded 
        </EmptyDataTemplate> 
       </asp:GridView> 

 protected void sds_Drivers_Updating(object sender, SqlDataSourceCommandEventArgs e) 
    { 
     foreach (SqlParameter p in e.Command.Parameters) 
     { 
      Response.Write(p.ParameterName + ": " + p.Value + "<br />"); 
     } 
    } 

良いニュースは、私は値を持っています。悪いことに、これらは編集フィールドの新しい値ではありません。

私は何を欠席しましたか?

ありがとうございました!

+0

それはあなたのASPXページでのデータ・アクセスを持つように設計の観点から非常に悪いです。データへのアクセスは、別のレイヤーで実行する必要があります。それらを結びつけるためにあなたのコードを使用してください。 – mason

+0

私のプロジェクトのほとんどはコードの背後にあります。しかし、このために私はASP.netツールを使いました。私はこれに含まれているツールを利用した設計の観点から、これが非常に悪いことをもっと見たいと思っています。 –

+0

Separation of Concernsについて聞いたことがありますか?データの取得とビジネスからの独立した更新とロジックの表示 – mason

答えて

0

あなたはこれを試すことができます。

protected void sds_Drivers_Updating(object sender, SqlDataSourceCommandEventArgs e) 
     { 
      foreach (SqlParameter p in e.Command.Parameters) 
      { 
       Response.Write(p.ParameterName + ": " + p.NewValues + "<br />"); 
      } 
     } 
+0

p.Valuesの代わりにp.NewValuesを使用します。 –

関連する問題