概括ADO.NET数据库连接的所有形式(基础)

 可能大家进来会喷笔者,这么基础的知识还放在首页。那么笔者就要问问大家了,你可能熟悉其中部分数据库读取的形式,但是熟悉全部的估计很少,或者你完全忘记了,因为这些形式被封装到你自己框架的底层,自己搞过一两次就在也没有动手写过了。但是笔者觉得这部分知识是应该牢固掌握的,这个是基础。好如果是已经掌握的大侠,看看笔者写的内容,提出点建议或者补充笔者的内容。

  好了废话不多说看

  第一种

  通过直接在cs文件中编写查询语句调用 dbcom.ExecuteNonQuery();执行插入数据

1 //连接字符串
2 string ConnectionString = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ConnectionString;
3 string ProviderName = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ProviderName;
4 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName);
5 DbConnection dbcon = dbproviderfactory.CreateConnection();
6 dbcon.ConnectionString = ConnectionString;
7 DbCommand dbcom = dbproviderfactory.CreateCommand();
8 dbcom.Connection = dbcon;
9 dbcom.CommandText ="Insert into dt_Table01(name,psw) values(@name,@psw)";
10 dbcom.CommandType = CommandType.Text;
11
12 //添加参数
13 DbParameter dbparameter = dbproviderfactory.CreateParameter();
14 dbparameter.ParameterName ="@name";
15 dbparameter.DbType = DbType.String;
16 dbparameter.Value ="xiaolong";
17 dbcom.Parameters.Add(dbparameter);
18 dbparameter = dbproviderfactory.CreateParameter();
19 dbparameter.ParameterName ="@psw";
20 dbparameter.DbType = DbType.String;
21 dbparameter.Value ="123";
22 dbcom.Parameters.Add(dbparameter);
23 dbcon.Open();
24 try
25 {
26 dbcom.ExecuteNonQuery();
27 }
28 catch(Exception ex)
29 {
30 //将错误写入日志里
31 AddLogError(ex.ToString());
32 Response.Redirect("~/ErrorPage.aspx");
33 }
34 finally
35 {
36 dbcon.Close();
37 }

  第二种当然是调用存储过程

1 //存储过程的
2 string ConnectionString = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ConnectionString;
3 string ProviderName = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ProviderName;
4 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName);
5 DbConnection dbcon = dbproviderfactory.CreateConnection();
6 dbcon.ConnectionString = ConnectionString;
7 DbCommand dbcom = dbproviderfactory.CreateCommand();
8 dbcom.Connection = dbcon;
9 dbcom.CommandType = CommandType.StoredProcedure;
10 dbcom.CommandText ="InsertTable01";
11 DbParameter dbparameter = dbproviderfactory.CreateParameter();
12 dbparameter.DbType = DbType.String;
13 dbparameter.ParameterName ="@name";
14 dbparameter.Value ="xiaohe";
15 dbcom.Parameters.Add(dbparameter);
16 dbparameter = dbproviderfactory.CreateParameter();
17 dbparameter.ParameterName ="@psw";
18 dbparameter.DbType = DbType.String;
19 dbparameter.Value ="123";
20 dbcom.Parameters.Add(dbparameter);
21 dbcon.Open();
22 try
23 {
24 dbcom.ExecuteNonQuery();
25 }
26 catch (Exception ex)
27 {
28 AddLogError(ex.ToString());
29 Response.Redirect("~/ErrorPage.aspx");
30 }
31 finally
32 {
33 dbcon.Close();
34 }

第三种就是可能同时插入两张表或者三张表或者更多。必须是同时,运用到了事务回滚机制。存储过程写法就不给出来了和上面一样。只是在存储过程编写事务。

1 //同时插入两张的表
2 string ConnectionString = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ConnectionString;
3 string ProviderName = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ProviderName;
4 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName);
5 DbConnection dbcon = dbproviderfactory.CreateConnection();
6 dbcon.ConnectionString = ConnectionString;
7 DbCommand dbcom = dbproviderfactory.CreateCommand();
8 dbcom.Connection = dbcon;
9 dbcom.CommandType = CommandType.Text;
10
11 DbParameter dbparameter = dbproviderfactory.CreateParameter();
12 dbparameter.DbType = DbType.String;
13 dbparameter.ParameterName ="@name";
14 dbparameter.Value ="xiaohei";
15 dbcom.Parameters.Add(dbparameter);
16 dbparameter = dbproviderfactory.CreateParameter();
17 dbparameter.ParameterName ="@psw";
18 dbparameter.DbType = DbType.String;
19 dbparameter.Value ="123";
20 dbcom.Parameters.Add(dbparameter);
21 dbparameter = dbproviderfactory.CreateParameter();
22 dbparameter.DbType = DbType.String;
23 dbparameter.ParameterName ="@teacher";
24 dbparameter.Value ="heihei";
25 dbcom.Parameters.Add(dbparameter);
26
27 dbcon.Open();
28 //事务开始
29 DbTransaction dbtran = dbcon.BeginTransaction();
30 dbcom.Transaction = dbtran;
31
32 try
33 {
34 dbcom.CommandText ="insert into dt_table01(name,psw) values(@name,@psw)";
35 dbcom.ExecuteNonQuery();
36 dbcom.CommandText ="insert into dt_table03(teacher,psw) values(@teacher,@psw)";
37 dbcom.ExecuteNonQuery();
38 //成功就提交
39 dbtran.Commit();
40 }
41 catch (Exception ex)
42 {
43 //出错就回滚
44 dbtran.Rollback();
45 AddLogError(ex.ToString());
46 Response.Redirect("~/ErrorPage.aspx");
47 }
48 finally
49 {
50 dbcon.Close();
51 dbtran.Dispose();
52 }

第四种

通过使用DbDataAdapter来获得查询的结果

1 //查询数据库
2 string ConnectionString = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ConnectionString;
3 string ProviderName = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ProviderName;
4 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName);
5 DbConnection dbcon = dbproviderfactory.CreateConnection();
6 dbcon.ConnectionString = ConnectionString;
7 DbCommand dbcom = dbproviderfactory.CreateCommand();
8 dbcom.Connection = dbcon;
9 dbcom.CommandText ="Select * from dt_Table01 where name=@name";
10 dbcom.CommandType = CommandType.Text;
11 DbParameter dbparameter = dbproviderfactory.CreateParameter();
12 dbparameter.ParameterName ="@name";
13 dbparameter.DbType = DbType.String;
14 dbparameter.Value ="xiaolong";
15 dbcom.Parameters.Add(dbparameter);
16 DataSet ds =new DataSet();
17 DbDataAdapter dbDataAdapeter = dbproviderfactory.CreateDataAdapter();
18 dbDataAdapeter.SelectCommand = dbcom;
19 try
20 {
21 dbDataAdapeter.Fill(ds, "data");
22 }
23 catch (Exception ex)
24 {
25 AddLogError(ex.ToString());
26 Response.Redirect("~/ErrorPage.aspx");
27 }
28 finally
29 {
30 dbDataAdapeter.Dispose();
31 }

第5种

使用DbDataReader或者查询结果,这里给出查询第一行第一列值,当然也可以直接调用Command.ExecuteScalar();函数

1 string ConnectionString = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ConnectionString;
2 string ProviderName = ConfigurationManager.ConnectionStrings["db_Test01ConnectionString"].ProviderName;
3 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName);
4 DbConnection dbcon = dbproviderfactory.CreateConnection();
5 dbcon.ConnectionString = ConnectionString;
6 DbCommand dbcom = dbproviderfactory.CreateCommand();
7 dbcom.Connection = dbcon;
8 dbcom.CommandText ="Select * from dt_Table01 where name=@name";
9 dbcom.CommandType = CommandType.Text;
10 DbParameter dbparameter = dbproviderfactory.CreateParameter();
11 dbparameter.ParameterName ="@name";
12 dbparameter.DbType = DbType.String;
13 dbparameter.Value ="xiaolong";
14 dbcom.Parameters.Add(dbparameter);
15 dbcon.Open();
16 DbDataReader dbDataReader=null;
17 string re =string.Empty;
18 try
19 {
20 dbDataReader= dbcom.ExecuteReader(CommandBehavior.SingleRow);
21 }
22 catch (Exception ex)
23 {
24 AddLogError(ex.ToString());
25 Response.Redirect("~/ErrorPage.aspx");
26 }
27 finally
28 {
29 dbcon.Close();
30 dbDataReader.Close();
31 }
32 //读入值
33 if (dbDataReader.Read())
34 {
35 //得到第一列值
36 re = dbDataReader.GetValue(0).ToString();
37 }
38 re = re +"hah";

当然还可以自己编写一些常用的调用例如:或者查询结果第一列的值等等。

大致上就是以上这几种形式了。

存储过程,Command直接执行,DataReader,DataAdapter,事务

由于笔者知识有限,如果还有其他形式请您补充上来

转载于:https://www.cnblogs.com/blogbai/archive/2012/09/26/2703881.html

概括ADO.NET数据库连接的所有形式(基础)相关推荐

  1. 必须知道的ADO.NET 数据库连接池

    http://www.cnblogs.com/liuhaorain/archive/2012/02/19/2353110.html 题外话 通过前几章的学习,不知道大家对ADO.NET有一定的了解了没 ...

  2. 数据库连接,上手零基础

    **数据库******是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 数据库的连接是不需要掌握的.换句话来说,只要你想做动态页面.数据存储.账号密码验证等,数据库连接都是一个很不 ...

  3. java 数据库连接不上_JAVA基础(六) 处理连接不上MYSQL数据库的方法

    一 使用环境 假设自己这台机子的IP = 192.168.10.10,局域网内另一台IP=192.168.10.20; 使用MYSQL连接本地数据库的时候,可以使用配置:localhost/127.0 ...

  4. ADO数据库连接中的Integrated Security和Persist Security Info参数的作用

    关于sql连接语句中的Integrated Security=SSPI 解决方法: 即:Security Support Provider Interface 设置Integrated Securit ...

  5. 终于搞清楚了ADO数据库连接中的Persist Security Info参数的作用

     终于搞清楚了ADO数据库连接中的Persist Security Info参数的作用 ADO用了这么久,每次用向导创建ADO的数据库连接字符串时总会有产生一个Persist Security Inf ...

  6. C# ADO.NET数据库操作

    C# ADO.NET数据库操作 C# ADO.NET数据库操作及常用类概述 C# Connection:连接数据库 C# Command:操作数据库 C# DataReader:读取查询结果 C# D ...

  7. 中华象思维的算法特征与逻辑基础

    摘要:当代中西方科学文化的交流.会通,须进一步深入到思维方式与语言逻辑问题.中华象思维基于"取象忘形",与西方理性思维的抽象概念与形式逻辑不同. 通过发掘与阐释,象思维的基础与规律 ...

  8. 《Web应用开发基础》期末复习整理~2021(九章知识点)

    注:出现404说明我修改了文章错误的部分,文章在被审核,不是我删除了文章 文章目录 §1 Web基础知识与开发运行环境 §2 HTML.XML和CSS §3 JavaScript §4 JSP基本语法 ...

  9. c 中mysql连接代码_c 数据库连接代码

    LINQPad学习与验证工具 LINQPAD是一款用于LINQ运算和测试的工具,功能丰富,操作简单.界面中可大致分为四个分隔窗格:一.左上部为数据源连接部分,点击添加连接[Addconnection] ...

最新文章

  1. Python3-Cookbook总结 - 第一章:数据结构和算法
  2. Ubuntu 14.04 64位机上用Caffe+MNIST训练Lenet网络操作步骤
  3. Spring的依赖注入和管理Bean
  4. MySQL从入门到精通50讲(一)-MySQL数据库操作创建数据库及删除数据库
  5. 编写高效的Android代码
  6. 在kindle fire 上安装CM10 Jelly Bean ROM
  7. how can we make them work together efficiently?
  8. 用Python开始机器学习(4:KNN分类算法)
  9. 如何在终端编辑文件并保存
  10. Web服务器处理Servlet处理请求过程
  11. 使用 kubeadm快速部署Kubernetes-v1.18
  12. 每个python文件就是一个模块、模块的名字就是_Python-模块和包
  13. 启动jar包报错: 找不到或无法加载主类
  14. 这是一个没有现金的国家——丹麦
  15. 用react-custom-scrollbars插件美化 Ant Design Table 滚动条
  16. 具象的东西_学完就忘?掌握科学的记忆方法,你也能成为学习高手
  17. 云服务器 共享文件,云服务器 共享文件
  18. 从零开始之uboot、移植uboot2017.01(五、board_init_f分析)
  19. C#高效编程 改进C#代码的50个行之有效的办法(第2版)
  20. 猿创征文 | 项目整合KafkaStream实现文章热度实时计算

热门文章

  1. tensorflow一元二次函数拟合
  2. jquery下载地址:https://code.jquery.com/jquery/ 影响范围: 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷,可能导致LOCA
  3. Hadoop 2.0集群配置详细教程
  4. BZOJ4503:两个串(bitset)
  5. Django 入门项目案例开发(中)
  6. Scrum Guides 2017年最新修改
  7. node截图服务可用性报告
  8. ai驱动数据安全治理_AI驱动的Web数据收集解决方案的新起点
  9. 使用final类的作用是什么?
  10. leetcode994. 腐烂的橘子(bfs)