ADO.NET操作数据库

简介: 在数据库操作中,获取数据并绑定到GridView上一般来说是我们的目标,下面是经常使用到的一种方式,利用DataAdapter和DataSet,DataTable的配合来实现。先来试试DataAdapter与DataTable。

在数据库操作中,获取数据并绑定到GridView上一般来说是我们的目标,下面是经常使用到的一种方式,利用DataAdapter和DataSet,DataTable的配合来实现。


先来试试DataAdapter与DataTable。

  • 首先获取一个数据库连接对象
  • 再要声明一个SqlCommand对象
  • 申请一个DataAdapter对象和DataTable对象
  • 然后开始进行数据的绑定工作
String connstr = "Data Source=.\\SQLEXPRESS;Initial Catalog=ForDataAdapter;Integrated Security=True";
            SqlConnection conn = null;
            try
            {
                conn = new SqlConnection(connstr);
                conn.Open();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            if (conn.State==ConnectionState.Open)
            {
                Console.WriteLine("数据库连接成功!");
            }
            DataTable dataTable = new DataTable("Student");
            dataTable.Clear();
            String SQLINSERT = "INSERT into Student values('"+textBox_Name.Text.Trim().ToString()+"','"
                +textBox_Class.Text.Trim().ToString()+"','"+textBox_Age.Text.Trim()+"')";
            SqlCommand cmd = new SqlCommand(SQLINSERT, conn);
            cmd.ExecuteNonQuery();
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = cmd;
            adapter.Fill(dataTable);
            dataTable.Clear();
            //显示消息
            SqlDataAdapter adaterSelect = new SqlDataAdapter("Select * from Student", conn);
            adaterSelect.Fill(dataTable);
            dataGridView1.DataSource = dataTable.DefaultView;

注意其中,适配器adapter来填充了datatable类的实例(adapter.Fill(dataTable),作用就是添加或刷新行以与数据源中的行进行匹配


DataAdapter与DataSet进行配合的使用:

  • 首先是建立一个数据库连接对象,并打开它
  • 然后是创建一个适配器,当然方式不止一种(还可以通过SqlCommand方式)
  • 声明DataSet,然后把适配器里面的内容填充到数据集中
  • 最后只需要把数据集作为GridView的数据源就可以了
String connstr = "Data Source=.\\SQLEXPRESS;Initial Catalog=ForDataAdapter;Integrated Security=True";
            SqlConnection conn = null;
            try
            {
                conn = new SqlConnection(connstr);
                conn.Open();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            if (conn .State==ConnectionState.Open)
            {
                Console.WriteLine("数据库连接成功!");
            }
            DataTable dataTable = new DataTable("Student");
            dataTable.Clear();
            String SQLSELECT = "SELECT * from Student order by Name";
            SqlDataAdapter adapter = new SqlDataAdapter(SQLSELECT, conn);
            DataSet dataset = new DataSet();
            adapter.Fill(dataset, "Student");
            dataGridView1.DataSource = dataset;
            dataGridView1.DataMember = "Student";

接下来一起看一看DataReader ,DataReader类是一个简单的数据集,用于从数据源中检索只读数据集,常用于检索大量的数据。DataReader类只允许只读,顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,同时,他还是一种非常节省资源的数据对象!


但是需要注意的是,DataReader是一个比较“强硬”方式,它会独占连接对象,所以每次打开一个新的对象的时候都必须关闭前一个DataReader对象,否则将会收到其产生的异常。
使用步骤:

  • 创建一个数据库连接对象,并记得打开
  • 创建SqlCommand类的实例,然后通过它得到SqlDataReader对象
  • 读取SqlDataReader实例的内容即可
private void button_AddToLB_Click(object sender, EventArgs e)
        {
            String connstr = "Data Source=.\\SQLEXPRESS;Initial Catalog=ForDataAdapter;Integrated Security=True";
            SqlConnection conn = null;
            try
            {
                conn = new SqlConnection(connstr);
                conn.Open();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            if (conn.State == ConnectionState.Open)
            {
                Console.WriteLine("数据库连接成功!");
            }
            SqlCommand cmd = new SqlCommand("Select * from Student", conn);
            SqlDataReader reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    listBox1.Items.Add(reader[0].ToString() + "\t" + reader[1].ToString() + "\t" + reader[2].ToString() + "\n");
                }
            }
            reader.Close();
        }


查阅资料得到:位于System.Data命名空间下的DataSet类是支持ADO.NET的断开式,分布式数据方案的核心对象,他是数据的内存主流的表示形式,无论数据源是什么,他都会提供一致的关系编程模型。另外,他还用于多种不同的数据源。例如用于XML数据或用于管理应用程序本地的数据。DataSet类表示包括相关表,约束和标间关系在内的整个数据集。


总结:
在使用DateSet时应该注意,DataSet表示的可以不只是一个标的内容,但是却是以顺序方式来存储数据源信息的,所以在使用的时候一定要分清即将使用的是哪一个数据源对应的内容。
如下:dataGridVIew.DataSource=dataSet.Table[0].DefaultView;
其中的索引便可以具体到对应的数据集。

目录
相关文章
|
5天前
|
存储 数据处理 数据库
深入了解达梦数据库的增删查改操作:从入门到精通
深入了解达梦数据库的增删查改操作:从入门到精通
|
13天前
|
DataWorks 关系型数据库 调度
DataWorks操作报错合集之DataWorks 数据库同步任务中,如果遇到表情符报错的现象,怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
29 0
|
13天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
30 0
|
3天前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
5天前
|
SQL Java 数据库连接
Java数据库编程实践:连接与操作数据库
Java数据库编程实践:连接与操作数据库
9 0
|
7天前
|
SQL JSON 关系型数据库
[UE虚幻引擎插件DTPostgreSQL] PostgreSQL Connector 使用蓝图连接操作 PostgreSQL 数据库说明
本插件主要是支持在UE蓝图中连接和操作PostgreSQL 数据库。
16 2
|
12天前
|
Java 关系型数据库 数据库连接
【C 言专栏】C 语言与数据库的连接与操作
【5月更文挑战第2天】本文探讨了C语言如何连接和操作数据库,介绍了数据库连接的基本原理,如通过ODBC、JDBC或原生接口与数据库交互。文章详细阐述了使用ODBC连接的步骤,并列举了C语言在数据库操作中的常见任务,强调了错误处理、数据类型匹配和性能优化的重要性。通过实际案例,展示了在学生信息管理系统中应用C语言与数据库交互的过程。本文旨在帮助读者更好地理解和应用C语言进行数据库管理。
|
13天前
|
XML Java 数据库连接
Springboot整合mybatisPlus操作数据库
MyBatis-Plus是MyBatis的增强工具,简化开发、提高效率。它提供官网文档,便于集成到SpringBoot项目中。集成步骤包括添加mybatis-plus-boot-starter和数据库驱动依赖,配置数据源,扫描Mapper类包。Mapper接口继承BaseMapper即可使用基本的CRUD操作。示例代码展示了Service层的增删改查实现。MyBatisPlus还支持逻辑删除、自动填充等功能,同时可与Mybatis XML配合使用,通过调整配置指定XML映射文件位置。
|
13天前
|
关系型数据库 MySQL Go
数据库的事务操作
数据库的事务操作
|
13天前
|
关系型数据库 MySQL Go
数据库的事务操作 | 青训营
数据库的事务操作 | 青训营