调试GridView更新失败c#
问题描述:
我已阅读并再次阅读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 />");
}
}
好消息是我的价值观。坏消息是这些并不是编辑领域的新价值。
我错过了什么?
在此先感谢!
答
你可以试试这个:
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.NewValues而不是p.Values。 –
这是非常糟糕的,从设计的角度来看,以在你的ASPX页面的数据访问。您的数据访问应该在单独的层中执行。使用你的代码将它们绑在一起。 – mason
我的大部分项目都是后台代码。然而,对于这个肮脏的我使用了ASP.net工具。我希望从使用.net中包含的工具的设计角度来看这更糟糕。 –
你有没有听说过关注分离?保持数据检索和更新独立于业务和查看逻辑? – mason