[新手点滴] IDbCommand.Prepare()方法。

今天在逛新闻组的时候无意中看到了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#]

ExpandedBlockStart.gif ContractedBlock.gif public   void  OleDbCommandPrepareEx()  dot.gif {
InBlock.gif   
int  id = 20;
InBlock.gif   
string  desc = "myFirstRegion" ;
InBlock.gif   OleDbConnection rConn 
= new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");
InBlock.gif   rConn.Open();
InBlock.gif   OleDbCommand command    
= new OleDbCommand(null, rConn);
InBlock.gif
InBlock.gif   
// Create and prepare an SQL statement.
InBlock.gif
   command.CommandText = "insert into Region (RegionID, RegionDescription) values (@id, @desc)" ;
InBlock.gif   command.Parameters.Add ( 
"@id", id) ;
InBlock.gif   command.Parameters.Add ( 
"@desc", desc) ;
InBlock.gif   command.Prepare() ;  
// Calling Prepare after having set the Commandtext and parameters.
InBlock.gif
   command.ExecuteNonQuery();
InBlock.gif
InBlock.gif   
// Change parameter values and call ExecuteNonQuery.
InBlock.gif
   command.Parameters[0].Value = 21;
InBlock.gif   command.Parameters[
1].Value = "mySecondRegion";
InBlock.gif   command.ExecuteNonQuery();
ExpandedBlockEnd.gif}

None.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值