1
  • 带有 mySQL .NET 连接器 6.6.5.0 的 Visual Studion 2012 更新 3
  • 我无法让 GridView 回发任何更新的数据

我的 GridView 配置为:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" DataSourceID="SqlDataSource1" AutoGenerateColumns="False">
        <Columns>
            <asp:CommandField ShowEditButton="True" ShowSelectButton="True" />
            <asp:BoundField DataField="Name" />
            <asp:BoundField DataField="Unit" />
            <asp:BoundField DataField="Price" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:mysqlConn %>" ProviderName="<%$ ConnectionStrings:mysqlConn.ProviderName %>" 
        SelectCommand="SELECT ID, Name, Unit, Price FROM product" 
        UpdateCommand="UPDATE product SET Name = ?, Unit = ?, Price = ? WHERE ID = ?">
        <UpdateParameters>
            <asp:Parameter Name="Name" Type="String"  Direction="Input" />
            <asp:Parameter Name="Unit" Type="String"  Direction="Input" />
            <asp:Parameter Name="Price" Type="Single"  Direction="Input" />
            <asp:Parameter Name="ID" Type="Int64"  Direction="Input" />
        </UpdateParameters>
    </asp:SqlDataSource>

网格很好地显示了产品列表。但是,当我在网格视图中选择“编辑”并更改一个值,然后单击“更新”时,结果更改不会发布回数据库。我的更新语句或参数做错了什么?

所有指针表示赞赏。

4

2 回答 2

0

我失踪了:

DataKeyNames="ID"

作为阻止更新发生的 GridView 定义的一部分。

于 2013-10-08T21:40:51.010 回答
0

请使用 GridView1.DataBind(); 然后 gridview 将绑定新数据。请参考此链接 http://msdn.microsoft.com/en-us/library/fkx0cy6d.aspx

于 2013-10-08T08:56:26.043 回答