将编辑从dataGridView保存到SQL Server数据库(没有DataSet或TableAdapter)
本文关键字:没有 DataSet TableAdapter 数据库 Server 编辑 dataGridView 保存 SQL | 更新日期: 2023-09-27 18:27:55
我有一个带有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 server,但不确定如何实现。请注意,在使用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();
}
}
使用行。单元格[int index]。值或行。单元格[string columnName]。值。请参阅http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewrow.cells.aspx
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
int tagId = Convert.ToInt32(row.Cells["TagID"].Value);
}