C# 数据库操作DbCommand、GetStoredProcCommand、GetSqlStringCommand

原文:http://www.ithao123.cn/content-4004602.html

http://hi.baidu.com/847270942/blog/item/c224dd557ff7455d574e0072.html

 

数据访问应用程序块提供了获取 ADO.NET DbCommand 对象的的统一方法。应用程序块的数据访问方法包含了接受 DbCommand 对象的重载。如果用 DbCommand 对象来使用重载,在调用存储过程时将可以进行更多的控制。例如,如果使用 DbCommand 对象,就可以使用在输出参数中返回多个结果的存储过程。另外,DbCommand 对象允许指定存储过程的超时值。

创建 DbCommand 对象的方法分为二种类型:

  • 表示存储过程调用的那些方法(例如,GetCustomers)
  • 表示 SQL 文本命令的那些方法(例如,Select CustomerID, Fullname From Customers )


调用的获取 DbCommand 对象的方法由是要执行内联的 SQL 还是调用存储过程来决定。用于存储过程的创建 DbCommand 对象的方法还提供参数缓存。关于参数缓存的更多信息,请参见处理参数。

所有 DbCommand 对象的创建都使用 Database 类的方法,这些方法如下:

  • GetStoredProcCommand。此方法用于存储过程命令。
  • GetSqlStringCommand。此方法用于 SQL 文本命令。 二个方法都返回一个 DbCommand 对象。

用于 SQL 语句的 DbCommand对象

使用 GetSqlStringCommand 方法创建用于内联 SQL 语句的 DbCommand 对象。特定的 SQL 命令在方法调用时做为一个参数进行传递。

下列代码展示了如何使用 GetSqlStringCommand

C#

  1. Database db = DatabaseFactory.CreateDatabase();  
  2. string sqlCommand = "Select CustomerID, LastName, FirstName From Customers";  
  3. DbCommand dbCommand = db.GetSqlStringCommand(sqlCommand); 

用于存储过程的 DbCommand 对象

要执行存储过程,必须使用 GetStoredProcCommand 方法来创建 DbCommand 对象。要执行存储过程的名称在方法调用时做为一个参数传递。

下列代码展示了如何使用 GetStoredProcCommand

C#

  1. Database db = DatabaseFactory.CreateDatabase();  
  2. DbCommand dbCommand = db.GetStoredProcCommand("GetProductsByCategory");  

http://hi.baidu.com/847270942/blog/item/c224dd557ff7455d574e0072.html

 

 

 

 

 

DbCommand 与SqlCommand的区别是什么啊,急,都不知道用哪个好 

DbParameter是sqlParmeter的基类,
sqlParameter针对sqlserver

DbParameter是父类,而且是abstract的,不能实例化
就是不能:DbParameter a = new DbParameter();

而SqlParameter是子类,可以实例化

可以:
DbParameter a = new SqlParameter();
或者:
SqlParameter a = new SqlParameter();

 

posted @   阿玛  阅读(6088)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示