2016-04-25 15 views
0

Ich versuche, jede Zeile in der GridView in eine Tabelle auf einen Klick der Schaltfläche einzufügen. Mein Problem mit dem Code ist unten, dass die Daten eingefügt wurden, aber ich kann die Ausnahme i diesen Code verwendet GriffEinfügen jeder Zeile in Grideview

string constring = @"Data Source=WINCTRL-RDJN6O6;Initial Catalog=Care_AlexDemo;Integrated Security=True"; 
    using (SqlConnection con = new SqlConnection(constring)) 
    { 
     using (SqlCommand cmd = new SqlCommand("INSERT INTO TeseI VALUES(@Emp_name, @Emp_number)", con)) 
     { 
      cmd.Parameters.AddWithValue("@Emp_name", row.Cells["Emp_name"].Value); 
      cmd.Parameters.AddWithValue("@Emp_number", row.Cells["Emp_number"].Value); 
      con.Open(); 
      cmd.ExecuteNonQuery(); 
      con.Close(); 
     } 
    } 
} 
MessageBox.Show("Records inserted."); 
+3

Welche Ausnahme erhalten Sie? Haben Sie im Internet danach gesucht? Versuchen Sie, Ihren Code in "try ... catch" einzufügen – raidensan

Antwort

0

Ich verstehe nicht, was die Variable ‚Reihe‘, ich nehme an, es bedeutet, jede Zeile in der DataGridView.Rows, also versuchen Sie, Zeilen nacheinander in die Datenbank einzufügen? Generell möchte ich alle Zeilen einmal mit der Anweisung INSERT INTO [TABLE_NAME] SELECT ... einfügen. so kann der Code so aussehen:

StringBuilder strsql = new StringBuilder("INSERT INTO TeseI "); 
foreach (var row in DataGridView.Rows) 
{ 
    strsql.AppendFormat(" SELECT '{0}', '{1}' UNION ALL ", row.Cells["Emp_name"].Value, row.Cells["Emp_number"].Value); 
} 
// remove the last 'UNION ALL ' 
strsql.Remove(strsql.Length - 10, 10); 
string constring = @"Data Source=WINCTRL-RDJN6O6;Initial Catalog=Care_AlexDemo;Integrated Security=True"; 
using (SqlConnection con = new SqlConnection(constring)) 
{ 
    using (SqlCommand cmd = new SqlCommand(strsql.ToString(), con)) 
    { 
     con.Open(); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
    } 
} 
MessageBox.Show("Records inserted."); 

durch die Art und Weise, ich glaube, wir die explizite Geltendmachung von ‚con.Open()‘ entfernen und ‚con.close()‘ Methoden, denn wir verwenden die ' mit 'Anweisung

Ich gebe nur die Art und Weise, weil Sie nicht die Ausnahmebedingungsnachricht angezeigt haben. Wie auch immer,
Hoffe, das kann helfen

Verwandte Themen