服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#数据表格(DataGridView)控件的应用案例

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

2022-11-07 12:53zx C#

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

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

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应用案例下一页 >

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

原文链接:http://c.biancheng.net/view/3040.html

延伸 · 阅读

精彩推荐
  • C#Unity3D实现虚拟按钮控制人物移动效果

    Unity3D实现虚拟按钮控制人物移动效果

    这篇文章主要为大家详细介绍了Unity3D实现虚拟按钮控制人物移动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一...

    shenqingyu06052023247072022-03-11
  • C#C#实现Winform中打开网页页面的方法

    C#实现Winform中打开网页页面的方法

    这篇文章主要介绍了C#实现Winform中打开网页页面的方法,涉及WinForm中WebBrowser的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    我心依旧7282021-10-20
  • C#简单聊聊c# 事件

    简单聊聊c# 事件

    这篇文章主要介绍了c# 事件的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    Learning hard8532022-09-28
  • C#C#实现学员信息管理系统

    C#实现学员信息管理系统

    这篇文章主要为大家详细介绍了C#实现学员信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    zxh...3932022-07-27
  • C#C# Email发送邮件 对方打开邮件可获得提醒

    C# Email发送邮件 对方打开邮件可获得提醒

    这篇文章主要为大家详细介绍了C# Email发送邮件功能,对方打开通知你,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    未知的路上4182022-02-10
  • C#C#资源释放方法实例分析

    C#资源释放方法实例分析

    这篇文章主要介绍了C#资源释放方法,结合实例详细分析了C#资源释放的具体方法与相关技巧,需要的朋友可以参考下...

    C#教程网9452021-11-14
  • C#C# 10个常用特性汇总

    C# 10个常用特性汇总

    这篇文章主要介绍了C# 10个常用特性,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    一傻小冲5652022-09-23
  • C#C#检测移动硬盘并获取移动硬盘盘符的方法

    C#检测移动硬盘并获取移动硬盘盘符的方法

    这篇文章主要介绍了利用C#检测移动硬盘并获取移动硬盘盘符...

    风舞|云涌11172022-02-15