第一种方法:双击鼠标直接修改数据同步到数据库
1、首先在app.config配置数据库
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="local"
connectionString="Data Source=DESKTOP-H4SJVU2;Initial Catalog=Hello_world;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
<appSettings>
<add key="connectionstring"
value="Data Source=DESKTOP-H4SJVU2;Initial Catalog=Hello_world;Integrated Security=True"/>
</appSettings>
</configuration>
2、在这里面连接数据库,相当于定义一个全局的conn
3、接着定义连接数据库的常用的全局变量
4、 点击窗体进入load中显示数据,这样主要运行项目数据就可以直接显示在daagridview控件中代码如下:
private void Form1_Load(object sender, EventArgs e)
{
conn.Open();
sqlStr = "select * from user_info";
SqlDataAdapter adapter = new SqlDataAdapter(str, conn);
DataSet ds = new DataSet();
adapter.Fill(ds, "user_info");
dataGridView1.DataSource = ds.Tables["user_info"];
conn.Close();
}
5、在datagridview属性里面找到EideMode属性,设置为EditOnEnter
6、然后找到事件CellValueChanged
7、双击点进去代码如下:
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
try
{
conn.Open();
//定义一个字符串str1=表格控件.列【事件获取列的索引】.表头的文本+‘=’+单引号+表格控件.当前单元格.值.转换string类型+单引号
//【e.columnIndex】为什么要用这个?因为我们要编辑那个行的时候,需要用到(比如数字监控他在bname上)要获取bname的列名字
string str1 = dataGridView1.Columns[e.ColumnIndex].HeaderText + "=" + "'" + dataGridView1.CurrentCell.Value.ToString() + "'";
//定义一个字符串str2=表格控件.行【事件获取行的索引】.单元格【0】.值.转换string类型
//where bid=100005 这个1005怎么获取?【e.RowIndex】获取行的索引.因为100005在单元格中第1行,(索引器从0开始的0就是1),在获取这个上面的值.转换成string类型
string str2 = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
//关联str1和str2 执行update 的时候就相当于把条件获取string变量上
string sqlupdate = "update user_info set " + str1 + " where user_id=" + str2;
//为什么用sqlcommand,不用dataadapter呢?因为SqlCommand下面有个方法ExecuteNonQuery,它ExecuteNonQuery()不返回任何值,一把应用于 insert update delete语句中
cmd = new SqlCommand(sqlupdate, conn);
cmd.ExecuteNonQuery(); //用到只能更新的方法来交互数据库更新
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
}
第二种方法:选择datagridview中的数据到txtbook中,在txtbox中修改数据,同步到数据库
我的表为user_info,有三个字段:user_id,user_name,user_pwd
1、在窗体中添加箭头所指的几个控件,id是主键,是不能修改的,所以在txtbox属性中找到readonly设置为true
2、连接数据库操作同第一种方法
3、在load里面查询数据,运行项目时数据直接显示同方法一一样
4、找到datagridview中的cellClick事件双击,将datagridview和txtbox进行捆绑
5、单击批量保存按钮继续代码编辑,跟新操作并同步到数据库中
这里的定义的i是表示更新一条数据后会返回一个执行结果用来提示更新状态
标签:控件,string,winfrom,数据库,datagridview,user,conn From: https://www.cnblogs.com/45fdsf4s4sdfsddv/p/17436321.html