C#编程基础 DataSet和DataTable应用实例

        DataSet是数据集,DataTable是数据表,DataSet存储多个DataTable。DataSet和DataTable像是专门存储数据的一个容器,在你查询数据库得到一些结果时可以存在里面。

        DataSet功能强大有浏览、排序、搜索、过滤、处理分级数据、缓存更改等功能,还可以与XML数据互换。DataSet中可包括多个DataTable,可将多个查询结构存到一个DataSet中,方便操作 ADO.NET开发人员为方便数据处理开发出来的,是数据的集合,为解决DataReader的缺陷设计的,DataReader数据处理速度快,但它是只读的,一旦移到下一行就不能查看上一行的数据,DataSet则可以自由移动指针。DataSet的数据是与数据库断开的。DataSet还可用于多层应用程序中,如果应用程序运行在中间层的业务对象中来访问数据库,则业务对象需将脱机数据结构传递给客户应用程序。

        在执行对表中数据的查询时还能将数据保存到 DataSet 中,但需要借助 DataAdapter 类来实现。在实际应用中,DataAdapter DataSet 是在查询操作中使用最多的类。此外,还可以通过 DataSet 实现对表中数据的增加、修改、删除操作。

 

 

使用 DataSet 和 DataTable 类存放查询结果

        在实际应用中,将查询结果存储到 DataSet 类或 DataTable 类中均可,在操作查询结果时也非常类似。下面分别通过实例来演示 DataSet DataTable 的使用。

【实例】创建 Windows 应用程序,查询数据库carsys用户信息表(Brand)中的所有用户名,并将用户名显示在列表控件(ListBox)中。根据题目要求,设置用户信息查询界面如下图所示。

 

一、SqlDataAdapter和DataSet配合使用

单击button1按钮,将所有用户名显示到 ListBox 控件中,首先使用 DataSet 对象存储查询结果,代码如下。

第一步:创建一个WINFORM窗体,窗体上有一个button1按钮和一个listBox1下拉框。


第二步:添加MySQL数据库引用

 

接着在程序中添加MySQL命名空间引用

using MySql.Data.MySqlClient;


完整的程序代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using MySql.Data.MySqlClient;


namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string constr = "Server=localhost;UserId=root;Password=68331;Database=CarSYS;pooling=false;CharSet=utf8;port=3306";//声明一个字符串用来存放连接数据库的信息
            //创建 SQLConnection 的实例
            MySqlConnection connection = new MySqlConnection(constr);//创建一个SqlConnection对象
            try       //将可能出错的语句放在try语句里
            {
                connection.Open();
                string sqlstr = "select * from Brand";//声明一个字符串,用来存放查询数据库表语句
                //创建 SQLDataAdapter 类的对象
                MySqlDataAdapter sda = new MySqlDataAdapter(sqlstr, connection);
                //创建DataSet类的对象
                DataSet ds = new DataSet();
                //使用SQLDataAdapter对象sda将查询结果填充到Dataset对象ds中
                sda.Fill(ds);
                //设置ListBox控件的数据源(DataSource)属性
                listBox1.DataSource = ds.Tables[0];
                //在listBox控件中显示name列的值
                listBox1.DisplayMember = ds.Tables[0].Columns[1].ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show("查询失败!" + ex.Message);
            }
            finally
            {
                if (connection != null)
                {
                    //关闭数据库连接
                    connection.Close();
                }
            }
        }
    }
}

数据库carsys用户信息表(Brand)中的信息参见下图。

运行该窗体,鼠标点击button1按钮后,效果如下图所示。

        从上面的运行效果可以看出,已经将用户信息表 (Brand) 中的所有用户名显示在列表控件 (ListBox) 中。

        需要注意的是,ListBox 控件中的 DataSource 属性用于设置控件中内容的数据源,并需要通过 DisplayMember 属性来指定显示在 ListBox 控件中的内容。

     

二、SqlDataAdapter和DataTable配合使用 

        在本实例中将 DataSet 对象换成 DataTable 对象,更改部分代码如下。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using MySql.Data.MySqlClient;

namespace WindowsFormsApp4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string constr = "Server=localhost;UserId=root;Password=68331;Database=CarSYS;pooling=false;CharSet=utf8;port=3306";//声明一个字符串用来存放连接数据库的信息
            //创建 SQLConnection 的实例
            MySqlConnection connection = new MySqlConnection(constr);//创建一个SqlConnection对象
            try       //将可能出错的语句放在try语句里
            {
                connection.Open();
                string sqlstr = "select * from Brand";//声明一个字符串,用来存放查询数据库表语句
                //创建 SQLDataAdapter 类的对象
                MySqlDataAdapter sda = new MySqlDataAdapter(sqlstr, connection);
                //创建 DataTable 类的对象
                DataTable dt = new DataTable();
                //使用 SqlDataAdapter对象sda将查询结果填充到DataTable对象dt中
                sda.Fill(dt);
                //设置ListBox控件的数据源(DataSource)属性
                listBox1.DataSource = dt;
                //在listBox控件中显示name列的值
                listBox1.DisplayMember = dt.Columns[1].ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show("查询失败!" + ex.Message);
            }
            finally
            {
                if (connection != null)
                {
                    //关闭数据库连接
                    connection.Close();
                }
            }
        }
    }
}

运行效果和上面一样,参见下图。 

 

 

 

 

 

https://www.cnblogs.com/liuyi-li/p/6340411.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C#中的DataSetDataTable是非常常用的数据存储和处理工具,下面是一些应用实例: 1. 数据库查询结果存储 在C#中,我们可以使用DataSetDataTable来存储数据库查询结果。例如,我们可以使用DataAdapter类从数据库中检索数据,并将结果存储在DataTable中。然后,我们可以使用DataTable的方法和属性来处理和操作这些数据。 2. 数据导入和导出 DataSetDataTable也可以用于数据导入和导出。例如,我们可以使用DataTable的WriteXml方法将数据保存为XML文件,然后使用ReadXml方法将数据加载回DataTable中。同样,我们也可以使用DataSet的WriteXml和ReadXml方法来导入和导出数据。 3. 数据筛选和排序 使用DataTable的Select方法可以筛选出符合条件的数据行,而使用DataTable的Sort方法可以对数据进行排序。这些方法可以帮助我们快速地处理和分析数据。 4. 数据绑定 DataSetDataTable也可以用于数据绑定。例如,我们可以使用DataGrid控件将DataTable中的数据绑定到一个表格中,然后可以对表格进行排序、筛选和编辑操作。 总之,DataSetDataTableC#中非常有用的数据存储和处理工具,可以帮助我们快速地处理和分析数据。 ### 回答2: 很抱歉,我需要更多的上下文信息才能回答您提出的问题。请提供更多的信息。 ### 回答3: 抱歉,您的问题中似乎缺少了一部分内容,无法理解您想要询问的具体问题。请您提供更详细的问题或背景信息,我将尽力为您提供准确的答案和帮助。谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值