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

 更新时间:2021年03月09日 11:18:37   投稿:zx  
这篇文章主要介绍了C#数据表格(DataGridView)控件的应用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

为了简化实例,添加课程信息的操作直接在 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 控件用于显示课程信息,并提供了根据课程名称查找课程信息、修改以及删除的功能。

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

课程信息管理界面设计

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 控件中的数据。< 上一页C# DataGridViewC# DataGridView应用案例下一页 >

到此这篇关于C#数据表格(DataGridView)控件的应用案例的文章就介绍到这了,更多相关C# DataGridView应用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中的CheckBox控件详解与应用示例

    C#中的CheckBox控件详解与应用示例

    在WPF(Windows Presentation Foundation)应用中,C#中的CheckBox控件是一种常用的用户界面元素,允许用户从多个选项中选择一个或多个选项,本文将详细介绍CheckBox控件的功能、使用方法以及在应用程序中的具体应用示例,需要的朋友可以参考下
    2024-04-04
  • C#实现Word转为PDF的方法

    C#实现Word转为PDF的方法

    今天小编就为大家分享一篇关于C#实现Word转为PDF的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • C#实现简易画图板的示例代码

    C#实现简易画图板的示例代码

    这篇文章主要介绍了C#实现简易画图板的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • .NET WinForm实现在listview中添加progressbar的方法

    .NET WinForm实现在listview中添加progressbar的方法

    这篇文章主要介绍了.NET WinForm实现在listview中添加progressbar的方法,结合实例形式简单分析了进度条控件的添加与使用方法,需要的朋友可以参考下
    2017-05-05
  • c#中WinForm使用OpencvSharp4实现简易抓边

    c#中WinForm使用OpencvSharp4实现简易抓边

    本文主要介绍了c#中WinForm使用OpencvSharp4实现简易抓边,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 如何利用Jenkins + TFS为.Net Core实现持续集成/部署详解

    如何利用Jenkins + TFS为.Net Core实现持续集成/部署详解

    这篇文章主要给大家介绍了关于如何利用Jenkins + TFS为.Net Core实现持续集成/部署的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2018-05-05
  • c# 委托的本质是什么

    c# 委托的本质是什么

    这篇文章主要介绍了c# 委托的本质是什么,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#窗体实现酒店管理系统

    C#窗体实现酒店管理系统

    这篇文章主要为大家详细介绍了C#窗体实现酒店管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 用 C# Winform做出全透明的磨砂玻璃窗体效果代码

    用 C# Winform做出全透明的磨砂玻璃窗体效果代码

    就是一个简单的例子, 调用系统的 dwm 去重绘窗口. 只能在 Vista 和 7 之后才可以, 并且要确保已经开启主题服务等等, 总之不是非常实用, 好玩而已
    2011-05-05
  • XAML如何获取元素的位置

    XAML如何获取元素的位置

    这篇文章主要为大家详细介绍了XAML如何获取元素的位置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论