【问题标题】:Asp.net Gridviews and databasesAsp.net Gridviews 和数据库
【发布时间】:2017-11-06 16:54:00
【问题描述】:

这可能是一个长镜头,但我正在尝试将数据从 GridView1(产品数据库表)传输到 GridView2(订单数据库表),我迷路了。

这是我正在尝试的:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow gr1 = GridView1.SelectedRow;

    gr1.Cells[1].Text = SqlDataSource3.InsertParameters["ProdId"].DefaultValue;
    TextBox tb1 = gr1.FindControl("TextBox1") as TextBox;
    SqlDataSource2.InsertParameters["OrderQty"].DefaultValue = tb1.Text;


}

第三行 GridViewRow gr1..... 有一个选择按钮。 我创建了一个带有文本框的新列,该列应该传输OrderQty

我有两个 SqlDataSource,一个用于 Product(SqlDataSource2),一个用于 Order(SqlDataSource3)。我不断收到错误消息:

System.NullReferenceException:对象引用未设置为对象的实例。

谁能看出我哪里出错了?

【问题讨论】:

  • 你调试代码了吗?代码中哪个对象为空?
  • 两者都是。我删除了第一个以查看第二个是否有效,但我收到了同样的错误
  • 哪个Both are ?什么是第一和第二?
  • ProdID 和 OrderQty
  • 您必须为此使用会话,否则?

标签: c# asp.net gridview


【解决方案1】:

用这个代码试试吧:

GridViewRow gr1 = (sender as Control).NamingContainer as GridViewRow;

【讨论】:

    【解决方案2】:

    这是我为使其正常工作所做的:

    GridViewRow gr1 = GridView1.SelectedRow;
    
        Label lblProdID = gr1.FindControl("Label1") as Label;
    
        SqlDataSource3.InsertParameters["OrderDate"].DefaultValue = "11/06/2017";
        SqlDataSource3.InsertParameters["CustID"].DefaultValue = TextBox2.Text;
        SqlDataSource3.InsertParameters["OrderID"].DefaultValue = "12346";
        SqlDataSource3.InsertParameters["ProdID"].DefaultValue = lblProdID.Text;
        SqlDataSource3.InsertParameters["OrderQty"].DefaultValue = ((TextBox)gr1.FindControl("TextBox1")).Text;
        SqlDataSource3.Insert();
    

    【讨论】:

      猜你喜欢
      • 2015-04-15
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2012-06-09
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多