0

システムからデータを追加してデータベースに保存できる C# プログラムを作成しています。SQL Server 2008 R2 を使用しています。名前と住所の 2 つのテーブルを持つデータ グリッド ビューがあります。私がやりたいことは、必要な情報を入力した後、保存ボタンをクリックした後にデータベースに保存したいということです。

これは私のデータ グリッド ビューのスクリーンショットです。

ここに画像の説明を入力

テキストボックスからデータベースにデータを保存するコードがあります。しかし、私はそれにテキストボックスを使用しましたが、テキストボックスの代わりにデータグリッドビューを使用して同じプロセス(データベースにデータを保存する)を行う方法がわかりません。助けてください。ありがとう。

これは、テキスト ボックスからデータベースにデータを保存する際に使用したコードです。

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
try
{
    using (SqlConnection connect = new SqlConnection(connectionString))
    {
        SqlCommand command = new SqlCommand();
        command.Connection = connect;
        command.CommandText = "insert into customer(name, address) values(@name, @address)";
        command.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar));
        command.Parameters.Add(new SqlParameter("@address", SqlDbType.VarChar));
        command.Parameters["@name"].Value = name.Text.ToLower();
        command.Parameters["@address"].Value = address.Text.ToLower();
        connect.Open();
    }
}
4

2 に答える 2

2

DataGridView.Rows コレクションを反復処理する必要があります (DataGridView は無制限であると想定しています)。

using (SqlConnection connect = new SqlConnection(connectionString))
    {
      using(SqlCommand command = new SqlCommand())
       {
        command.Connection = connect;
        command.CommandText = "insert into customer(name, address) values(@name, @address)";

        command.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar));
        command.Parameters.Add(new SqlParameter("@address", SqlDbType.VarChar));
        connect.Open();
        foreach (DataGridViewRow row in dataGridView1.Rows)
         {
          if(!row.IsNewRow)
           {
             command.Parameters["@name"].Value = row.Cells[0].Value;
             command.Parameters["@address"].Value = row.Cells[1].Value;
             command.ExecuteNonQuery();
           }
         }
      }
    }
于 2012-06-07T09:30:32.077 に答える
0

GridView は DataSource にバインドされていますか?

その場合は、'updatecommand' または 'insertcommand' を使用して、グリッドビューがこれらの操作のいずれかを認識したときに使用される SQL クエリ文字列を定義できます。

ここの gridview MSDN ページで「updatecommand」を使用する適切な例があります。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowupdated

また、insert メソッドの SqlDataSource を見て、関連付けることができるイベントを確認してください。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.insert

于 2012-06-07T09:32:27.783 に答える