2016-04-25 6 views
0

ボタンをクリックすると、GridViewのすべての行をテーブルに挿入しようとしています。 、私はそれが内のすべての行を意味するとし、以下のコードで私の問題は、データが挿入されたということですが、私はグリッドビューにすべての行を挿入する

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

を助けることができますか?あなたはウェブ上でそれを検索しようとしましたか? 'try ... catch'でコードを囲みてみてください – raidensan

答えて

0

は私が変数「行」であるかを理解していない、このコードを使用し、例外を扱うカントDataGridView.Rows、データベースに行を1つずつ挿入しようとしますか?一般的に私は 'INSERT INTO [TABLE_NAME] SELECT ...'ステートメントで一度すべての行を挿入したいと思います。そのコードは、このようなことがあります。

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

方法によって、私たちは "を使用しているため、我々は、「con.Open()」と「con.Close()」メソッドの明示的な呼び出しを削除することができると思います「ステートメント

私はちょうどあなたが例外メッセージを示さなかった原因私は道を譲るを使用。とにかく、
希望これは、あなたが受け取るどのような例外

関連する問題