posts - 83,  comments - 881,  views - 52万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
今天在逛新闻组的时候无意中看到了SqlCommand.Prepare()方法。在IDbCommand接口上就定义了Prepare()方法,这个方法可以把CommandType为Text的SQL语句提前在数据库中编译为一个临时的StoredProcedure然后再执行,这样对于需要多次执行的DbCommand来说,可以提高一定的执行效率:)注意:请在指定了Command的Connection之后再调用Prepare()方法。

此方法在msdn上的介绍如下:

Creates a prepared (or compiled) version of the command on the data source.

Remarks

If the CommandType property is set to TableDirect, Prepare does nothing. If CommandType is set to StoredProcedure, the call to Prepare should succeed, although it may result in a no-op.

Example
The following example creates an instance of the derived class, OleDbCommand, and opens the connection. The example then prepares a stored procedure on the data source by passing a string that is a SQL Select statement and a string to use to connect to the data source.
[C#]

public void OleDbCommandPrepareEx() {
   
int  id = 20;
   
string  desc = "myFirstRegion" ;
   OleDbConnection rConn 
= new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");
   rConn.Open();
   OleDbCommand command    
= new OleDbCommand(null, rConn);

   
// Create and prepare an SQL statement.
   command.CommandText = "insert into Region (RegionID, RegionDescription) values (@id, @desc)" ;
   command.Parameters.Add ( 
"@id", id) ;
   command.Parameters.Add ( 
"@desc", desc) ;
   command.Prepare() ;  
// Calling Prepare after having set the Commandtext and parameters.
   command.ExecuteNonQuery();

   
// Change parameter values and call ExecuteNonQuery.
   command.Parameters[0].Value = 21;
   command.Parameters[
1].Value = "mySecondRegion";
   command.ExecuteNonQuery();
}

posted on   Laser.NET  阅读(2350)  评论(2编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
无觅相关文章插件,快速提升流量
点击右上角即可分享
微信分享提示