2013-11-22 65 views
1

我:为什么ASP.net GridView没有更新MS ACCESS记录?

<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> 

对我的生活中,我想不通为什么这不会更新。 “编辑”记录有效,但在更改记录并点击“更新”后没有任何反应。一切都恢复原状。编辑: 这里发生了一些奇怪的事情。如果我在'Teacher2'列中设置一个值,那么将填充到'Teacher1'列。 CourseNumber列也不是它应该是什么,这就是为什么WHERE CourseNumber = @CourseNumber不起作用。

回答

0

我想通了。 UpdateCommand必须紧跟SelectCommand,而主键Key,CourseNumber除外。 select中的所有东西都必须在正确的更新中。一旦我这样做,一切都很好!

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

+0

仍然不起作用...没有任何意义。我有5个其他网格视图更新得很好。这是唯一一个有问题的人。 –