テーブルAttendanceのコンテンツを表示するためのdataGridViewを含むフォームがあります
TagID SessionID ScanningTime
---------------------------------------
4820427 Test1 14/08/2013 18:12
ユーザーは、既存のレコードを変更したり、新しいレコードを追加したりできます。
データを編集した後の出席表の例:
TagID SessionID ScanningTime
---------------------------------------
4820000 Test1 14/08/2013 18:12
0000001 Test2 15/08/2012 17:00
ボタンをクリックした後、ユーザーが DGV から SQL サーバーに変更を保存できるようにしたいのですが、これを実現する方法がわかりません。DGV を使用する場合、DataSet や TableAdapter は使用しないことに注意してください。
私のコード:
private void UpdateBtn_Click(object sender, EventArgs e)
{
foreach (var row in dataGridView1.Rows)
{
string ConnStr = "Data Source=DUZY;Initial Catalog=AutoRegSQL;Integrated Security=True";
SqlConnection MyConn = new SqlConnection(ConnStr);
MyConn.Open();
string query = @"UPDATE Attendance" +
" SET TagID= @tagNo, SessionID= @sessionNo, ScanningTime= @scantime ";
SqlCommand command = new SqlCommand(query, MyConn);
command.Parameters.Add("tagNo", SqlDbType.Int).Value = //HOW TO GET VALUE FROM row.TagID column?
command.Parameters.Add("sessionNo", SqlDbType.Char).Value = //HOW TO GET VALUE FROM row.SessionID column?
command.Parameters.Add("scantime", SqlDbType.DateTime2).Value = //HOW TO GET VALUE FROM row.ScanningTime column?
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(queryResult);
RoomActiveSessionForm.DGVSetDataSouce(queryResult);
MyConn.Close();
}
}