C#数据表格(DataGridView)控件的应用案例

作者:zx 时间:2023-04-11 11:10:24 

我们通过一个完整的实例来实现课程信息管理功能的操作,包括查询、修改、删除课程信息的操作。

为了简化实例,添加课程信息的操作直接在 SQL Server 数据库中完成。

下面分几个步骤完成。

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 控件用于显示课程信息,并提供了根据课程名称查找课程信息、修改以及删除的功能。

具体的界面设计如下图所示。

C#数据表格(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();
   }
 }
}

运行该窗体,效果如下图所示。

C#数据表格(DataGridView)控件的应用案例

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();
     }
   }
 }
}

运行该窗体,查询效果如下图所示。

C#数据表格(DataGridView)控件的应用案例

从上面的运行效果可以看出,在文本框中输入“计算机”,则可以实现查询所有课程 名称中含有“计算机”字样的课程信息。

5) 实现修改功能在 DataGridView 控件中选中一条课程信息,单击“修改”按钮,弹出修改课程信息界面并在该界面中显示要修改的信息,修改界面的设计如下图所示。

C#数据表格(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();
}

修改操作的运行效果如下图所示。

C#数据表格(DataGridView)控件的应用案例

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();
   }
 }
}

删除操作的运行效果如下图所示。

C#数据表格(DataGridView)控件的应用案例

单击删除消息框中的“确定”按钮,'即可刷新 DataGridView 控件中的数据。< 上一页C# DataGridViewC# DataGridView应用案例下一页 >

来源:http://c.biancheng.net/view/3040.html

标签:C#,DataGridView
0
投稿

猜你喜欢

  • Java实现抢红包功能

    2021-08-05 07:47:58
  • Java登录功能实现token生成与验证

    2023-11-30 07:57:28
  • Qt串口通信开发之QSerialPort模块简单使用方法与实例

    2023-03-23 03:25:45
  • Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)

    2023-11-27 11:02:17
  • C# 在PDF中添加墨迹注释Ink Annotation的步骤详解

    2022-01-31 14:23:29
  • Android用SharedPreferences实现登录注册注销功能

    2023-03-24 21:50:10
  • Javafx实现国际象棋游戏

    2021-07-21 18:39:47
  • Java Swing组件布局管理器之FlowLayout(流式布局)入门教程

    2021-11-08 05:33:06
  • C#记一次http协议multipart/form-data的boundary问题

    2021-07-01 17:45:49
  • Java使用JavaMail API发送和接收邮件的代码示例

    2022-09-02 01:15:51
  • JavaEE中struts2实现文件上传下载功能实例解析

    2023-03-09 07:54:31
  • Java文件操作之按行读取文件和遍历目录的方法

    2023-11-24 16:58:21
  • MyBatis的逆向工程详解

    2022-12-03 11:06:10
  • 深入理解SpringMVC中央调度器DispatcherServlet

    2023-03-11 08:54:48
  • Android入门教程之Fragment的具体使用详解

    2021-09-30 01:21:57
  • 谈谈Android的三种网络通信方式

    2023-04-19 17:28:47
  • Java 静态代理与动态 代理解析

    2023-08-22 17:18:19
  • C#实现在图像中绘制文字图形的方法

    2023-03-20 17:06:11
  • C#基础入门之值类型和引用类型的区别详析

    2022-02-22 00:14:04
  • 详解java基础--提示对话框的使用

    2023-01-31 12:11:46
  • asp之家 软件编程 m.aspxhome.com