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

目录
相关文章
|
25天前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
15 0
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
61 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
2月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
35 4
|
25天前
|
SQL 安全 数据库连接
使用ADO.NET访问数据库
使用ADO.NET访问数据库
10 0
|
1月前
|
缓存 NoSQL 数据库
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
|
1月前
|
SQL 存储 关系型数据库
【mysql】—— 数据库的操作
【mysql】—— 数据库的操作
【mysql】—— 数据库的操作
|
1月前
|
SQL 存储 关系型数据库
C# .NET面试系列十:数据库概念知识
#### 1. 为什么要一定要设置主键? 设置主键是数据库设计中的一个重要概念,有几个主要原因: 1、唯一性 ```c# 主键必须保证表中的每一行都有唯一的标识。这样可以避免数据冗余和不一致性。如果没有主键或者主键不唯一,就可能出现数据混乱或错误。 ``` 2、查询性能 ```c# 数据库系统通常会使用主键来加速数据检索。主键通常会被索引,这样可以更快速地找到特定行的数据,提高查询效率。 ``` 3、关联性 ```c# 主键常常用于建立表与表之间的关系。在关系数据库中,一个表的主键通常与其他表中的外键建立关联,这种关系对于数据的一致性和完整性非常重要。 ``` 4、数据完
129 1
C# .NET面试系列十:数据库概念知识
|
2月前
|
存储 SQL 数据库连接
连接并操作数据库:Python 数据库案例
数据库是一种用于存储和管理数据的工具,它以一种有组织的方式将数据存储在文件或内存中,以便于检索和处理。数据库系统通常使用 SQL(Structured Query Language)语言来进行数据的操作,包括数据的插入、查询、更新和删除等。
|
2月前
|
前端开发 数据库连接 数据库
ASP.NETMVC数据库完整CRUD操作示例
ASP.NETMVC数据库完整CRUD操作示例
29 0
|
2月前
|
SQL Oracle 关系型数据库
【操作宝典】Navicat+MySQL:极简教程,轻松玩转数据库!
【操作宝典】Navicat+MySQL:极简教程,轻松玩转数据库!
49 1

热门文章

最新文章