扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
DataGridView控件怎么在C#项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!创新互联公司具备承接各种类型的成都网站建设、成都网站设计项目的能力。经过十余年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。1) 创建课程信息表创建课程信息表的 SQL 语句如下。
use test; create table course ( id int primary key identity(1,1), name varchar(20), credit numeric(3,1), remark varchar(50) );
向表中添加数据的语句如下。
insert into course (name, credit, remark) values ('计算机基石 ' , 2, '无'); insert into course (name, credit, remark) values ('C# 程序开发', 2.5 , '机房授课'); insert into course (name, credit, remark) values ('数据库原理',1,'无'); insert into course (name, credit, remark) values ('体育',1,'无'); insert into course (name, credit, remark) values ('职业素养培训',0.5,'无');
在 SQL Server 中执行上述 SQL 语句即可完成课程信息表(course)的创建和数据的添加。
2) 课程信息管理界面的设计在课程信息管理界面中提供了 DataGridView 控件用于显示课程信息,并提供了根据课程名称查找课程信息、修改以及删除的功能。
具体的界面设计如下图所示。
3) 在加载窗体时显示所有课程信息本例中使用编写代码的方式实现 DataGridView 控件的数据绑定,并在窗体的加载事件中加入数据绑定的代码。
由于查询所有课程信息的代码将在后面的修改和删除功能中重复使用,所以单独定义一个方法来实现查询所有课程信息。代码如下。
//窗体加载事件 private void DataGridViewForm_Load(object sender, EventArgs e) { //调用查询全部课程的方法 QueryAllCourse(); } //查询全部课程 private void QueryAllCourse() { //数据库连接串 string connStr = "Data Source=.;Initial Catalog=test;User ID=sa;Password=root"; //创建SqlConnection的实例 SqlConnection conn = null; try { conn = new SqlConnection(connStr); //打开数据库 conn.Open(); string sql = "select * from course"; //创建SqlDataAdapter类的对象 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); //创建DataSet类的对象 DataSet ds = new DataSet(); //使用SqlDataAdapter对象sda将查新结果填充到DataSet对象ds中 sda.Fill(ds); //设置表格控件的DataSource属性 dataGridView1.DataSource = ds.Tables[0]; //设置数据表格上显示的列标题 dataGridView1.Columns[0].HeaderText = "编号"; dataGridView1.Columns[1].HeaderText = "课程名称"; dataGridView1.Columns[2].HeaderText = "学分"; dataGridView1.Columns[3].HeaderText = "备注"; //设置数据表格为只读 dataGridView1.ReadOnly = true; //不允许添加行 dataGridView1.AllowUserToAddRows = false; //背景为白色 dataGridView1.BackgroundColor = Color.White; //只允许选中单行 dataGridView1.MultiSelect = false; //整行选中 dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; } catch (Exception ex) { MessageBox.Show("查询错误!" + ex.Message); } finally { if (conn != null) { //关闭数据库连接 conn.Close(); } } }
运行该窗体,效果如下图所示。
4) 完成课程名称的模糊查询在“查询”按钮的单击事件中加入根据课程名称模糊查询的代码,具体如下。
//查询按钮单击事件 private void button1_Click(object sender, EventArgs e) { if (textBox1.Text != "") { //数据库连接串 string connStr = "Data Source=.;Initial Catalog=test;User ID=sa;Password=root"; //创建SqlConnection的实例 SqlConnection conn = null; try { conn = new SqlConnection(connStr); //打开数据库 conn.Open(); string sql = "select * from course where name like '%{0}%'"; //填充占位符 sql = string.Format(sql, textBox1.Text); //创建SqlDataAdapter类的对象 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); //创建DataSet类的对象 DataSet ds = new DataSet(); //使用SqlDataAdapter对象sda将查新结果填充到DataSet对象ds中 sda.Fill(ds); //设置表格控件的DataSource属性 dataGridView1.DataSource = ds.Tables[0]; } catch (Exception ex) { MessageBox.Show("出现错误!" + ex.Message); } finally { if (conn != null) { //关闭数据库连接 conn.Close(); } } } }
运行该窗体,查询效果如下图所示。
从上面的运行效果可以看出,在文本框中输入“计算机”,则可以实现查询所有课程 名称中含有“计算机”字样的课程信息。
5) 实现修改功能在 DataGridView 控件中选中一条课程信息,单击“修改”按钮,弹出修改课程信息界面并在该界面中显示要修改的信息,修改界面的设计如下图所示。
选中 DataGridView 控件的一条课程信息,单击“修改”按钮。
“修改”按钮的单击事件中的代码如下。 //修改课程信息 private void button2_Click(object sender, EventArgs e) { //获取DataGridView控件中的值 //获取课程编号 string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString(); //获取课程名称 string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); //获取课程名称 string credit = dataGridView1.SelectedRows[0].Cells[2].Value.ToString(); //获取课程名称 string remark = dataGridView1.SelectedRows[0].Cells[3].Value.ToString(); //创建updateForm类的对象,并将课程信息传递给修改界面 updateForm updateform = new updateForm(id, name, credit, remark); //弹出修改信息窗口 DialogResult dr = updateForm.ShowDialog(); //判断是否单击确定按钮 if (dr == DialogResult.OK) { //调用查询全部课程方法 QueryAllCourse(); } }
修改界面 (UpdateForm) 中的代码如下。
//带参数的构造方法 public updateForm(string id,string name,string credit,string remark) { InitializeComponent(); textBox1.Text = id; textBox2.Text = name; textBox3.Text = credit; textBox4.Text = remark; } //确认按钮单击事件 private void button1_Click(object sender, EventArgs e) { //数据库连接串 string connStr = "Data Source=.;Initial Catalog=test;User ID=sa;Password=root"; //创建SqlConnection的实例 SqlConnection conn = null; try { conn = new SqlConnection(connStr); //打开数据库 conn.Open(); string sql = "update course set name='{0}',credit='{1}',remark='{2}' where id='{3}'"; //填充占位符 sql = string.Format(sql, textBox2.Text, textBox3.Text, textBox4.Text, textBox1.Text); //创建SqlCommand类的对象 SqlCommand cmd = new SqlCommand(sql, conn); //执行修改操作的SQL cmd.ExecuteNonQuery(); //弹出成功提示 MessageBox.Show("修改成功!"); //设置当前窗体DislogResult结果为OK this.DialogResult = DialogResult.OK; //关闭窗体 this.Close(); } catch (Exception ex) { MessageBox.Show("修改失败!" + ex.Message); } finally { if (conn != null) { //关闭数据库连接 conn.Close(); } } } //取消按钮单击事件 private void button2_Click(object sender, EventArgs e) { //关闭窗体 this.Close(); }
修改操作的运行效果如下图所示。
6) 实现删除功能为“删除”按钮添加单击事件,将选中的课程信息删除并刷新界面中查询出来的数据。实现的代码如下。
//删除按钮的单击事件 private void button3_Click(object sender, EventArgs e) { //获取DataGridView控件中选中行的编号列的值 int id = int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString()); //数据库连接串 string connStr = "Data Source=.;Initial Catalog=test;User ID=sa;Password=root"; //创建SqlConnection的实例 SqlConnection conn = null; try { conn = new SqlConnection(connStr); //打开数据库 conn.Open(); string sql = "delect from course where id='{0}'"; //填充占位符 sql = string.Format(sql, id); //创建SqlCommand类的对象 SqlCommand cmd = new SqlCommand(sql, conn); //执行SQL语句 cmd.ExecuteNonQuery(); //弹出消息提示删除成功 MessageBox.Show("删除成功!"); //调用查询全部的方法,刷新DataGridView控件中的数据 QueryAllCourse(); } catch (Exception ex) { MessageBox.Show("删除失败!" + ex.Message); } finally { if (conn != null) { //关闭数据库连接 conn.Close(); } } }
删除操作的运行效果如下图所示。
单击删除消息框中的“确定”按钮,'即可刷新 DataGridView 控件中的数据。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流