C# Asp.net网格视图和数据库

C# Asp.net网格视图和数据库,c#,asp.net,gridview,C#,Asp.net,Gridview,这可能需要很长时间,但我正在尝试将数据从GridView1(产品数据库表)传输到GridView2(订单数据库表),结果我迷路了 以下是我正在尝试的: protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { GridViewRow gr1 = GridView1.SelectedRow; gr1.Cells[1].Text = SqlDataSource3.InsertParamet

这可能需要很长时间,但我正在尝试将数据从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,一个用于产品(SqlDataSource2),一个用于订单(SqlDataSource3)。我一直收到一个错误:

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

有人能看出我的错误在哪里吗?

试试下面的代码:

GridViewRow gr1 = (sender as Control).NamingContainer as GridViewRow;
请使用以下代码进行尝试:

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

以下是我为让它工作所做的:

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();

以下是我为让它工作所做的:

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();

你调试代码了吗?代码中的哪个对象是空的?两者都是空的。我删除了第一个以查看第二个是否有效,但我收到了相同的错误,这两个都是?什么是第一个和第二个?ProdID和OrderQTY您必须使用会话来完成该操作,还是调试代码?代码中的哪个对象是空的?两者都是空的。我删除了第一个以查看第二个是否有效,但我收到了相同的错误,这两个都是?什么是第一个和第二个?ProdID和OrderQTY您必须使用会话进行该操作还是?