2011-08-03 17 views
5

Nasıl her seferinde bir DataGridView'ın satır döngü sonra bir SQL sorgusu için bir parametre olarak kullanarak bir değişken olan 2 sütun saklamak (I2 sütun var) mi? bir nesnenin örneğine ayarlanmadıDataGridView satır değerlerini nasıl alabilir ve değişkenlerde saklayabilirim?

nesne başvurusu - Yukarıdaki kod kullanırken

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

      } 

bu hatayı alıyorum. contentValue1 Ne

+0

geçmekte boş hücreleri önlemek için eğer ben gerekli sorun mu buldunuz? I2 sütun ve her satır i o değerleri almak ve daha sonra bir veri tabanına eklenir bir değişkende saklamak istiyorum @andrewcooper –

+0

sonraki satırda üzerine hareket eder. –

+0

Hata hangi satırı veriyor? ContentTable_grd var mı? –

cevap

3

deyimi size kod elde etmediğini yapmak isteyen vardır ne

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

iyi catch olarak hata verecektir. Göz önünde bulundurabileceğiniz bir şey, bazen de null değerlerini prosedürünüze aktarmak istemeniz ... Ayrıca - string.isnullorempty() için olası bir yedek olarak checkout! = NULL ... – Chains

1

mı? C# hakkında emin

değil - bu örtük değişkeni yazabilirsiniz? Belki

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

5

büyük olasılıkla sorun gibi şeyler yapabilir ... kontrolünün ne tür hücresinde olabilir bağlı olarak da string contentvalue1 = ...

gibi bir şey denemek olduğunu biri veya her ikisi Referans yaptığınız hücrenin boş bir değeri var ve böyle bir hücrede ToString() numaralı telefonu aramaya çalıştığınızda istisna atılıyor.

bir çözüm Cep Değeri boş olup olmadığını parametre için varsayılan bir değer döndürmek için ?? operator kullanmaktır:

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

hücrenin Değer null ise boş bir dize döndürür Bu kod; Farklı bir varsayılan kullanmak isteyebilirsiniz.

İlgili konular