【发布时间】:2018-01-25 00:25:06
【问题描述】:
我有一个链接到 SQL 表的GridView。表的列数未知或可变。列数和列名都是可变的。是否可以在sqlDataSource 中设置动态UpdateCommand 以便我可以更新每一列?如是;怎么样?
我试过的代码:
<asp:GridView ID="GridView1" AutoGenerateColumns="True" ShowHeaderWhenEmpty ="True" DataSourceID="UpdateSqlDataSource"
CssClass = "table" runat="server" AllowSorting="True" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px"
CellPadding="3" DataKeyNames="UpdateID" ShowFooter="True"
AutoGenerateDeleteButton="true" AutoGenerateSelectButton ="true" AutoGenerateEditButton="true">
<AlternatingRowStyle BackColor="#F7F7F7" />
<Columns>
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<SortedAscendingCellStyle BackColor="#F4F4FD" />
<SortedAscendingHeaderStyle BackColor="#5A4C9D" />
<SortedDescendingCellStyle BackColor="#D8D8F0" />
<SortedDescendingHeaderStyle BackColor="#3E3277" />
</asp:GridView>
<asp:SqlDataSource ID ="UpdateSqlDataSource" runat ="server" ConnectionString="<%$ ConnectionStrings:MachineUpdateDataBaseConnectionString %>"
DeleteCommand="DELETE FROM [MachineUpdate] WHERE [UpdateID] = @UpdateID"
SelectCommand="SELECT * FROM [MachineUpdate]" UpdateCommand="UPDATE SET [MachineUpdate] = @MachineUpdate WHERE [UpdateID] = @UpdateID[*] = @* WHERE [UpdateID] = @UpdateID">
<DeleteParameters>
<asp:Parameter Name="UpdateID" Type="Int32" />
</DeleteParameters>
</asp:SqlDataSource>
【问题讨论】:
-
你想更新什么?该行的内容?
-
提示:columns.add 在一个循环中。
-
@Ewerton,是的,行的内容
-
我不确定你的意思@JacobH
-
您想一次更新所有行还是更新特定行?
标签: c# asp.net gridview ado.net sqldatasource