【问题标题】:VB SQL Insert Query Inserts NULL for all valuesVB SQL 插入查询为所有值插入 NULL
【发布时间】:2015-07-24 14:54:44
【问题描述】:

我正在 Visual Web Developer 中开发一个 asp.net 应用程序,我正在尝试在数据库中插入一个新行。我目前在 GridView 的页脚模板中有一个“插入”行。页脚始终可见,我不确定这是否与我的插入查询不起作用有关。

我的插入查询是在 Gridview RowCommand 事件中调用的,我在 asp.net 端有我的插入命令文本,所以在 RowCommand 事件中,我只是为命令声明我的参数。当我调试并单步执行事件中的每一行代码时,所有参数都接收到正确的值,但插入后,当我查看数据库时,整行为 NULL。

我无法弄清楚为什么它实际上没有从参数中插入值,但这可能只是我忽略的一个愚蠢的错误。这是行命令代码

Protected Sub GridView1_RowCommand(sender As Object, e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand

    If e.CommandName.Equals("Insert") Then
        Dim oItem As GridViewRow = DirectCast(DirectCast(e.CommandSource, Button).NamingContainer, GridViewRow)
        Dim DateTxt As String = DirectCast(GridView1.FooterRow.FindControl("DateTxt"), TextBox).Text
        Dim First As String = DirectCast(GridView1.FooterRow.FindControl("FirstTxt"), TextBox).Text
        Dim Last As String = DirectCast(GridView1.FooterRow.FindControl("LastTxt"), TextBox).Text
        Dim Product As String = DirectCast(GridView1.FooterRow.FindControl("ProductTxt"), TextBox).Text
        Dim Description As String = DirectCast(GridView1.FooterRow.FindControl("DescriptionTxt"), TextBox).Text
        Dim Quantity As String = DirectCast(GridView1.FooterRow.FindControl("QuantityTxt"), TextBox).Text
        Dim Phone As String = DirectCast(GridView1.FooterRow.FindControl("PhoneTxt"), TextBox).Text
        Dim Email As String = DirectCast(GridView1.FooterRow.FindControl("EmailTxt"), TextBox).Text
        Dim Price As String = DirectCast(GridView1.FooterRow.FindControl("PriceTxt"), TextBox).Text
        Dim Urgency As String = DirectCast(GridView1.FooterRow.FindControl("UrgencyTxt"), TextBox).Text
        Dim Freight As String = DirectCast(GridView1.FooterRow.FindControl("FreightTxt"), TextBox).Text
        Dim PO As String = DirectCast(GridView1.FooterRow.FindControl("POTxt"), TextBox).Text
        Dim Vendor As String = DirectCast(GridView1.FooterRow.FindControl("VendorTxt"), TextBox).Text
        Dim Notes As String = DirectCast(GridView1.FooterRow.FindControl("NotesTxt"), TextBox).Text
        Dim PickupCustomers As String = DirectCast(GridView1.FooterRow.FindControl("PickupCustomerTxt"), TextBox).Text
        'Dim ID As String = GridView1.Rows(oItem.RowIndex).Cells(0).Text

        SqlDataSource1.InsertParameters.Add("@Date", DateTxt)
        SqlDataSource1.InsertParameters.Add("@First", First)
        SqlDataSource1.InsertParameters.Add("@Last", Last)
        SqlDataSource1.InsertParameters.Add("@Product", Product)
        SqlDataSource1.InsertParameters.Add("@Description", Description)
        SqlDataSource1.InsertParameters.Add("@Quantity", Quantity)
        SqlDataSource1.InsertParameters.Add("@Phone", Phone)
        SqlDataSource1.InsertParameters.Add("@Email", Email)
        SqlDataSource1.InsertParameters.Add("@Price", Price)
        SqlDataSource1.InsertParameters.Add("@Urgency", Urgency)
        SqlDataSource1.InsertParameters.Add("@Freight", Freight)
        SqlDataSource1.InsertParameters.Add("@PO", PO)
        SqlDataSource1.InsertParameters.Add("@Vendor", Vendor)
        SqlDataSource1.InsertParameters.Add("@Notes", Notes)
        SqlDataSource1.InsertParameters.Add("@PickupCustomers", PickupCustomers)
        'SqlDataSource1.InsertParameters.Add("@ID", ID)
        SqlDataSource1.Insert()
        SqlDataSource1.DataBind()
        GridView1.DataBind()
    End If
End Sub

这里是asp.net sqldatasource插入查询

 InsertCommand="INSERT INTO Special_Orders(Date, First, Last, Product, Description, Quantity, Phone, Email, Price, Urgency, Freight, PO, Vendor, Notes, Ordered, Received, PickedUp, PickupCustomer) VALUES (@Date, @First, @Last, @Product , @Description, @Quantity, @Phone, @Email, @Price, @Urgency, @Freight, @PO, @Vendor , @Notes, 0, 0, 0, @PickupCustomer)">
    <InsertParameters>
        <asp:Parameter Name="Date" />
        <asp:Parameter Name="First" />
        <asp:Parameter Name="Last" />
        <asp:Parameter Name="Product" />
        <asp:Parameter Name="Description" />
        <asp:Parameter Name="Quantity" />
        <asp:Parameter Name="Phone" />
        <asp:Parameter Name="Email" />
        <asp:Parameter Name="Price" />
        <asp:Parameter Name="Urgency" />
        <asp:Parameter Name="Freight" />
        <asp:Parameter Name="PO" />
        <asp:Parameter Name="Vendor" />
        <asp:Parameter Name="Notes" />
        <asp:Parameter Name="PickupCustomer" />
    </InsertParameters>

【问题讨论】:

    标签: asp.net vb.net sql-insert sqldatasource


    【解决方案1】:

    我发现了错误。在我后面的代码中,我输错了 PickupCustomer 参数。由于我的查询文本位于 asp.net 端,尽管它没有引发任何错误。一旦我以编程方式在其后面的代码中添加了查询,就会引发错误。

    【讨论】:

      猜你喜欢
      • 2016-03-04
      • 2013-11-06
      • 2018-04-13
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      相关资源
      最近更新 更多