1

我想使用 GridView 和 SqlDataSource 的标准函数插入数据库条目。自从一些版本之前的肮脏变通办法以来,这个主题是否有任何更新(例如,见这里这里)?我在网上找不到任何新教程。

例如,是否有任何处理程序允许使用标准的 -Datafield 和 SqlDataSource 的 UpdateCommand 将条目写入数据库?目前,UpdateCommand 似乎没有得到我输入的值。如何正确调试那些 SqlDataSource-Database-Queries?

这是我尝试使用的解决方案:我的数据库表 tblname 仅包含一列“名称”。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:VConStr %>"
    DeleteCommand="DELETE FROM [tblname] WHERE [name] = @name" 
    InsertCommand="INSERT INTO [tblname] ([name]) VALUES (@name)" 
    SelectCommand="SELECT [name] FROM [tblname]"
    UpdateCommand="UPDATE [tblname] SET [name] = @name WHERE [name] = @name">
    <DeleteParameters><asp:Parameter Name="name" Type="String" /></DeleteParameters>
    <InsertParameters><asp:Parameter Name="name" Type="String" /></InsertParameters>
    <UpdateParameters><asp:Parameter Name="name" Type="String" /></UpdateParameters>
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="name" DataSourceID="SqlDataSource1" ShowFooter="true">
    <Columns>
        <asp:TemplateField HeaderText="Name" ShowHeader="True">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("name") %>' />
            </ItemTemplate>
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("name") %>' />
            </EditItemTemplate>
            <FooterTemplate>
                <asp:TextBox ID="Insertname" name="name_new" runat="server" Text='<%# Bind("name") %>' />
            </FooterTemplate>
        </asp:TemplateField>

        <asp:TemplateField HeaderText="Action" ShowHeader="True">
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" Text="Edit" CommandName="Edit" />
                <asp:Button ID="Button4" runat="server" Text="Delete" CommandName="Delete" OnClientClick="return confirm('Sure?');" />
            </ItemTemplate>
            <EditItemTemplate>
                <asp:Button ID="Button2" runat="server" Text="Edit entry" CommandName="Update" />
                <asp:Button ID="Button3" runat="server" Text="Cancel" CommandName="Cancel" />
            </EditItemTemplate>
            <FooterTemplate>
                <asp:Button ID="Button5" runat="server" Text="New" CommandName="Insert" />
            </FooterTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
4

0 回答 0