2011-08-03 6 views
5

DataGridView의 행을 한 번에 (두 개의 열이 있음) 반복하여 SQL 쿼리의 매개 변수로 사용할 변수에이 두 열을 저장할 수 있습니까? 개체의 인스턴스로 설정되지 않았습니다DataGridView 행 값을 가져 와서 변수에 저장할 수 있습니까?

개체 참조 - 위의 코드를 사용하는 경우

foreach (DataGridViewRow Datarow in contentTable_grd.Rows) 
      { 
       contentValue1 = Datarow.Cells[0].Value.ToString(); 
       contentValue2 = Datarow.Cells[1].Value.ToString(); 

       SqlParameter param4 = new SqlParameter("@contentTableValue1", contentValue1); 
       SqlParameter param5 = new SqlParameter("@contentTableValue2", contentValue2); 

      } 

는이 오류를 받고 있어요.

+0

을 겪고에서 빈 셀을 방지하기 위해 경우에 내가 필요로 문제를 발견하셨습니까? –

+0

@andrewcooper 2 열이 있고 각 행에 대해 해당 값을 가져 와서 데이터베이스에 삽입 한 다음 다음 행으로 이동하는 변수에 저장하려고합니다. –

+0

어떤 줄에서 오류가 발생합니까? 'contentTable_grd'가 존재합니까? –

답변

3

문은 당신이 당신의 코드를 달성하지 않습니다 싶고 무엇

foreach (DataGridViewRow Datarow in contentTable_grd.Rows) 
    { 
     if (Datarow.Cells[0].Value != null && Datarow.Cells[1].Value != null) 
     { 
      contentValue1 = Datarow.Cells[0].Value.ToString(); 
      contentValue2 = Datarow.Cells[1].Value.ToString(); 
      MessageBox.Show(contentValue1); 
      MessageBox.Show(contentValue2); 
     } 

    } 
+1

잡기. 당신이 고려할 수도있는 한 가지는 때때로 프로 시저에 null 값을 전달하고 싶을 때 ... 또한 - = NULL에 대한 가능한 대체품으로 checkout string.isnullorempty()를 ... – Chains

1

무엇이 contentValue1입니까?

C#에 대해 잘 모름 - 변수를 암시 적으로 입력 할 수 있습니까? 어쩌면 당신은

string contentvalue1 = CTYPE(DataRow.FindControl("myTextbox"),textbox).text

5

가능성이 가장 높은 문제 같은 것을 할 수 ... 컨트롤의 어떤 종류의 셀에있을 수 있습니다에 따라, 또한 string contentvalue1 = ...

같은 것을 시도 것은 그 하나 또는 모두 참조하는 셀의 값이 null이며 해당 셀에서 ToString()을 호출하려고하면 예외가 throw됩니다.

하나의 솔루션이 셀 값이 null의 경우 매개 변수의 기본값을 반환 할 ?? operator을 사용하는 것입니다

contentValue1 = Datarow.Cells[0].Value ?? string.Empty; 
contentValue2 = Datarow.Cells[1].Value ?? string.Empty; 

셀의 값이 null의 경우 빈 문자열을 반환이 코드; 다른 기본값을 사용하고자 할 수 있습니다.

관련 문제