【问题标题】:Why doesn't ASP.net GridView update MS ACCESS record?为什么 ASP.net GridView 不更新 MS ACCESS 记录?
【发布时间】:2013-11-22 22:55:46
【问题描述】:

我有:

<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 不起作用的原因。

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案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

    【讨论】:

    • 仍然不起作用...没有任何意义。我还有 5 个更新得很好的其他网格视图。这是唯一有问题的。
    【解决方案2】:

    我想通了。 UpdateCommand 必须完全遵循 SelectCommand,但主键 CourseNumber 除外。选择中的所有内容都必须在更新中正确。一旦我这样做了,一切都很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多