DataGridView直接修改数据并且更新数据库(转)

1、 两个属性设置:
第一个:设置自动创建列,默认为True
DataGridView1. AutoGenerateColumns = True;
虽然默认为True,但写下去总是好的!!!
第二个:鼠标单击编辑,默认双击
DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;

dataGridView1.ReadOnly = true;//整个表格只读
dataGridView1.Columns[1].ReadOnly = true;//列只读
dataGridView1.Rows[0].ReadOnly = true;//行只读
dataGridView1[3,3].ReadOnly = true;//单元格只读

DataGridView显示数据

private void GetDataGridView()
{
try
{
string strda = "select * from FilTer";
SqlConnection conn = connection();
conn.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(strda, conn);
da.Fill(ds, "显示数据");
conn.Close();
dataGridView1.AutoGenerateColumns = true;//自动创建列
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;//单击单元格编辑
dataGridView1.DataSource = ds.Tables[0];
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString());
}
}

更新数据库

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
SqlConnection conn = connection();
try
{
string strcolumn = dataGridView1.Columns[e.ColumnIndex].HeaderText;//获取列标题
string strrow = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();//获取焦点触发行的第一个值
string value = dataGridView1.CurrentCell.Value.ToString();//获取当前点击的活动单元格的值
string strcomm = "update FilTer set " + strcolumn + "='" + value + "'where id = " + strrow;
//update FilTer set 列名 = value where id = 3
conn.Open();
SqlCommand comm = new SqlCommand(strcomm, conn);
comm.ExecuteNonQuery();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString());
}
finally
{
conn.Close();
}
}
---------------------
作者:秋风十里
来源:CSDN
原文:https://blog.csdn.net/qq_23833037/article/details/52167239
版权声明:本文为博主原创文章,转载请附上博文链接!



posted on 2018-11-20 11:36  南方群岛  阅读(773)  评论(0)    收藏  举报

导航