SQL_DataGridView控件
准备:如何安装、调出DataGridView控件(待补充)
1. DataGridView控件——加载数据、修改数据
加载的效果:
using System; using System.Data; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace Test03 { public partial class Form1 : Form { public Form1() { InitializeComponent(); //初始化组件 } SqlConnection conn; //定义连接对象变量 SqlDataAdapter adapter; //定义适配器变量 int intindex = 0; //定义点击时的行索引值
private void button1_Click(object sender, EventArgs e) //加载数据 { conn = new SqlConnection("server=MRC-8CF94303A82\\MRNET;database=db_16;uid=sa;pwd=111"); //创建数据库连接 SqlDataAdapter sda = new SqlDataAdapter("select * from tb_emp",conn); //创建适配器对象 DataSet ds = new DataSet(); //创建数据集,相当于内存中的小型数据库 sda.Fill(ds); //将适配器中的数据填充到数据集中 dataGridView1.DataSource = ds.Tables[0]; //将数据集数据,绑定到dataGridView中 dataGridView1.RowHeadersVisible = false; //让表格左侧头部行不可视 for (int i = 0; i < dataGridView1.ColumnCount;i++ ) //遍历所有列 { dataGridView1.Columns[i].Width = 84; //让每列列宽为84 } button1.Enabled = false; //让按钮1处于禁用状态 dataGridView1.Columns[0].ReadOnly = true; //让第一列处于只读状态 }
private DataTable dbconn(string strSql) //获取内存中的数据表 { if (conn.State == ConnectionState.Open) //如果连接状态是打开状态,先关闭 conn.Close(); this.adapter = new SqlDataAdapter(strSql, conn); //创建一个适配器对象,赋值给当前Form1已定义的适配器adapter DataTable dtSelect = new DataTable(); int rnt = this.adapter.Fill(dtSelect); //将适配器this.adapter中数据填充到数据表dtSelect中 return dtSelect; //返回一个数据表 }
private void button2_Click(object sender, EventArgs e) { if (dbUpdate()) //调用修改数据方法dbUpdate方法 { MessageBox.Show("修改成功!"); } }
private Boolean dbUpdate() //修改数据 { string strSql = "select * from tb_emp"; DataTable dtUpdate = new DataTable(); dtUpdate = this.dbconn(strSql); //将内存中的数据表赋值给新的数据表dbUpdate DataTable dtShow = new DataTable(); dtShow = (DataTable)this.dataGridView1.DataSource;//获取dataGridView控件上显示的数据,赋值给dtShow数据表。(DataTable)是强制转换 dtUpdate.ImportRow(dtShow.Rows[intindex]);//Rows[intindex] //获取当前行,再通过ImporRow()方法导入到dtUpdata数据表表中。 SqlCommandBuilder CommandBuiler; // 创建CommandBuiler对象 CommandBuiler = new SqlCommandBuilder(this.adapter); // 通过SqlCommandBuider关联当前的this.adapter适配器中的数据 this.adapter.Update(dtUpdate); //通过this.adapter对象的Updata方法更新dtUpdate数据表 dtUpdate.AcceptChanges(); //提交更改 return true; //更新成功返回true } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { intindex = e.RowIndex; //通过e获取点击单元格时的行索引 } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结