InsertCommand到标题模板

时间:2014-02-15 19:33:43

标签: asp.net gridview

尝试将三个文本框插入到gridview的标题中,并使用一个按钮在数据库中执行“INSERT INTO”。

在我的在线服务器数据库中:idt是int,datetime是varchar,col1,col2,col3是数字。

<asp:SqlDataSource
    id="SqlDataSource1"
    ConnectionString="<%$ ConnectionStrings:connone %>"
    SelectCommand="SELECT * FROM [test];"
    InsertCommand="INSERT INTO [test] [datetime],[col1],[col2],[col3] VALUES @datetime,@col1,@col2,@col3;"
    runat="server">
    <InsertParameters>
        <asp:Parameter Name="datetime" Type="String" />
        <asp:Parameter Name="col1" Type="Double" />
        <asp:Parameter Name="col2" Type="Double" />
        <asp:Parameter Name="col3" Type="Double" />
    </InsertParameters>
</asp:SqlDataSource>

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    SqlDataSource1.InsertParameters("@datetime").DefaultValue = DateTime.Now.ToString()
    SqlDataSource1.InsertParameters("@col1").DefaultValue = CType(GridView1.HeaderRow.FindControl("TextBoxHeadercol1"), TextBox).Text
    SqlDataSource1.InsertParameters("@col2").DefaultValue = CType(GridView1.HeaderRow.FindControl("TextBoxHeadercol2"), TextBox).Text
    SqlDataSource1.InsertParameters("@col3").DefaultValue = CType(GridView1.HeaderRow.FindControl("TextBoxHeadercol3"), TextBox).Text
    SqlDataSource1.Insert()
End Sub

<asp:GridView ID="GridView1" 
    runat="server"
    DataSourceID="SqlDataSource1"
    AutoGenerateColumns="False"
    DataKeyNames="idt">
    <Columns>
        <asp:BoundField DataField="idt" HeaderText="idt" Readonly="true" SortExpression="idt" />
        <asp:BoundField DataField="datetime" HeaderText="datetime" SortExpression="datetime" />
        <asp:TemplateField SortExpression="col1">
            <HeaderTemplate>
                <asp:TextBox ID="TextBoxHeadercol1" text="col1" runat="server" MaxLength="40" />
            </HeaderTemplate>
       </asp:TemplateField>
        <asp:TemplateField SortExpression="col2">
            <HeaderTemplate>
                <asp:TextBox ID="TextBoxHeadercol2" text="col2" runat="server" MaxLength="40" />
            </HeaderTemplate>
       </asp:TemplateField>
        <asp:TemplateField SortExpression="col3">
            <HeaderTemplate>
                <asp:TextBox ID="TextBoxHeadercol3" text="col3" runat="server" MaxLength="40" />
            </HeaderTemplate>
       </asp:TemplateField>
</asp:GridView>

1 个答案:

答案 0 :(得分:0)

我建议在InsertParameters中删除“@”,如下所示:

SqlDataSource1.InsertParameters("col1").DefaultValue =     
    ((TextBox)GridView1.HeaderRow.FindControl("TextBoxHeadercol1")).Text;

这应该有效。