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;
其中的索引便可以具体到对应的数据集。

目录
相关文章
|
27天前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
119 3
|
3月前
|
SQL 开发框架 数据库
".NET开发者的超能力:AgileEAS.NET ORM带你穿越数据库的迷宫,让数据操作变得轻松又神奇!"
【8月更文挑战第16天】AgileEAS.NET是面向.NET平台的企业应用开发框架,核心功能包括数据关系映射(ORM),允许以面向对象方式操作数据库,无需编写复杂SQL。通过继承`AgileEAS.Data.Entity`创建实体类对应数据库表,利用ORM简化数据访问层编码。支持基本的CRUD操作及复杂查询如条件筛选、排序和分页,并可通过导航属性实现多表关联。此外,提供了事务管理功能确保数据一致性。AgileEAS.NET的ORM简化了数据库操作,提升了开发效率和代码可维护性。
51 5
|
25天前
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
|
27天前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:实现过程与关键细节解析an3.021-6232.com
随着互联网技术的快速发展,ASP.NET作为一种广泛使用的服务器端开发技术,其与数据库的交互操作成为了应用开发中的重要环节。本文将详细介绍在ASP.NET中如何连接SQL数据库,包括连接的基本概念、实现步骤、关键代码示例以及常见问题的解决方案。由于篇幅限制,本文不能保证达到完整的2000字,但会确保
|
1月前
|
数据库
Admin.Net根据域名自动选择数据库
Admin.Net根据域名自动选择数据库
15 0
|
2月前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
213 6
|
3月前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
52 0
|
4月前
|
开发框架 前端开发 JavaScript
基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用
基于SqlSugar的数据库访问处理的封装,支持.net FrameWork和.net core的项目调用
|
4月前
|
开发框架 缓存 NoSQL
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用