2017-11-06 7 views
0

これは長引くかもしれませんが、私はGridView1(製品データベーステーブル)からGridView2(注文データベーステーブル)にデータを転送しようとしています。Asp.net Gridviewsとデータベース

は、ここで私がしようとしているものです:

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; 


} 

gr1.....は、選択ボタンがありGridViewRow 3行目。 OrderQtyを転送するテキストボックスを使用して新しい列を作成しました。

私はProduct(SqlDataSource2)とOrder(SqlDataSource3)の2つのSqlDataSourcesを持っています。私はエラーが続いています:

System.NullReferenceException: Object reference not set to an instance of an object.

ここで私が間違っているのを誰にでも見られますか?

+0

を使用すると、コードをデバッグしましたか?コード内のどのオブジェクトがヌルですか? –

+0

どちらもあります。私は2番目が動作するかどうかを最初に確認しましたが、同じエラーが発生しました – Bob

+0

どちらが '両方ですか?最初と2番目は何ですか? –

答えて

1

は、このコードでそれを試してみてください。

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

は、ここで私はそれを動作させるためにやったことだ:

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(); 
関連する問題