command.prepare方法优化你的参数化执行命令。prepare结构为多重调用最优化指定命令。要使用prepare,你首先得理解你的数据库是怎样相应prepare调用。sql server 2000中,command已经被隐式优化和prepare不是必须的;在sql server7.0或其它数据库中使用prepare是有效的。
iv.明确地指定计划和元数据
ado.net中的很多对象都要推断元数据信息,只要用户不指定它,举例如下:
①如果在dataset中不存在,dataadapter.fill方法就会创建表和列信息;
②commandbuilder为独立表的select命令生成dataadpater命令参数;
③commandbuilder.deriveparameters组装一个命令对象的参数信息;
如果什么时候都使用上面讲的方法,可能会降低执行性能。推荐在设计阶段和广告段应用程序中使用。可能的情况下,一般都要指定计划和元数据。这些包括指定dataset的表和列、指定dataadapter的command属性和指定command的参数信息。
v.executescalar和executenonquery
如果你想只返回一个简单值,比如count(*)、sum(price)或者avg(quantity),你可以使用executescalar,它帮助你一步到位得到你想要的值,从而避免使用datareader的两步计算(executereader+getvalue);
当你不想返回行信息,比如修改数据(insert、update、delete)或者仅需要输出参数或者返回值,使用executenonquery,它去掉不必要的处理创建一个空的datareader。
vi.空值检查
如果在你的表中某列允许空值,你可以使用where语句进行空值检查,下面举例说明: