将编辑从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();
            }
        }

将编辑从dataGridView保存到SQL Server数据库(没有DataSet或TableAdapter)

使用行。单元格[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);
}