我有:
<asp:GridView ID="ClassesGridView" runat="server" AutoGenerateColumns="False" DataKeyNames="CourseNumber" DataSourceID="AccessClasses"
AutoGenerateEditButton="True" >
<Columns>
<asp:BoundField DataField="CourseNumber" HeaderText="CourseNumber" ReadOnly="True" SortExpression="CourseNumber" />
<asp:BoundField DataField="Teacher1" HeaderText="Teacher1" SortExpression="Teacher1" />
<asp:BoundField DataField="T1PhoneNumber" HeaderText="T1PhoneNumber" SortExpression="T1PhoneNumber" />
<asp:BoundField DataField="T1Email" HeaderText="T1Email" SortExpression="T1Email" />
<asp:BoundField DataField="Teacher2" HeaderText="Teacher2" SortExpression="Teacher2" />
<asp:BoundField DataField="T2PhoneNumber" HeaderText="T2PhoneNumber" SortExpression="T2PhoneNumber" />
<asp:BoundField DataField="T2Email" HeaderText="T2Email" SortExpression="T2Email" />
<asp:BoundField DataField="OrderToVisit" HeaderText="OrderToVisit" SortExpression="OrderToVisit" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessClasses" runat="server" DataFile="~/App_Data/SundaySchool.mdb"
SelectCommand="SELECT [CourseNumber], [Teacher1], [T1PhoneNumber], [T1Email], [Teacher2], [T2PhoneNumber], [T2Email], [OrderToVisit] FROM [Classes]"
UpdateCommand="UPDATE Classes SET Teacher1 = @Teacher1 WHERE CourseNumber = @CourseNumber">
</asp:AccessDataSource>
对于我的生活,我无法弄清楚为什么这不会更新。 &#39;编辑&#39;记录有效,但在更改记录并点击“更新”后什么都没发生。一切都恢复了。
编辑: 这里发生了一些奇怪的事情。如果我在&#39; Teacher2&#39;中设置了一个值列,然后将填充到&#39; Teacher1&#39;柱。 CourseNumber列也不应该是WHERE CourseNumber = @CourseNumber不起作用的原因。
答案 0 :(得分:1)
您必须更改UpdateCommand,请注意?
而不是@
:
<asp:AccessDataSource ID="AccessClasses" runat="server" DataFile="~/App_Data/SundaySchool.mdb"
SelectCommand="SELECT [CourseNumber], [Teacher1], [T1PhoneNumber], [T1Email], [Teacher2], [T2PhoneNumber], [T2Email], [OrderToVisit] FROM [Classes]"
UpdateCommand="UPDATE Classes SET Teacher1 = ? WHERE CourseNumber = @CourseNumber">
</asp:AccessDataSource>
以下是有关AccessDataSource的更多信息:MSDN。
答案 1 :(得分:0)
我想出来了。 UpdateCommand必须完全遵循SelectCommand,主键,CourseNumber除外。 select中的所有内容都必须在更新中正确。一旦我这样做,一切都很好!!