2017-11-06 4 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을 전송해야하는 입력란이있는 새 열을 만들었습니다.

제품 (SqlDataSource2)과 주문 (SqlDataSource3)에 각각 하나씩 두 개의 SqlDataSources가 있습니다. 계속 오류가 발생합니다.

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

내가 어디에서 잘못 될지 누가 알 수 있습니까?

+0

당신이 코드를 디버깅나요? 어떤 객체가 null인지? –

+0

둘 다 있습니다. 두 번째 작업이 가능한지 먼저 확인했지만 동일한 오류가 발생했습니다. – Bob

+0

둘 다 있습니까? 첫 번째와 두 번째 무엇입니까? –

답변

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