参数化查询并不去拼接什么字符串,而是直接传给数据库系统。相应的数据库系统,都支持参数化查询,只是调用语法稍有不同(例如 t-sql 语言中有 sp_executesql 等等好几种写法),而 ado.net 并没有什么“生产一段完整的sql命令的”的功能。

解决方案 »

  1.   

    ado.net并不是去拼凑什么“完整的sql命令”,因此对于一些数据库系统,你可能需要考虑“到底是使用@命名还是 ? 号用来作为参数,到底只支持一种还是两种都支持,到底有没有对参数提交顺序有要求”等等问题。这些都是因为 ado.net 根本不揪扯这些所谓参数的实现,因此每一种数据库就都有自己的“标准”需要你遵守。
      

  2.   

    它没解析它只是自动的帮你declare而已
      

  3.   

    你可以不用管,ADO.net会根据provider自己去判断数据类型。有兴趣的话可以用一些软件去跟踪执行时的sql,比如sqlserver本身提供的profile。
      

  4.   

    它并不解析,在数据库执行的时候,直接把@variable替换成SqlParameter[]对应的值
    至于可以直接执行,这个是SQL SERVER自己的特性你拿Profile监控一下执行的语句就知道了
      

  5.   

    请问怎么用   Profile  监测啊??有没有相关的资料看看
      

  6.   

    请问怎么用   Profile  监测啊??有没有相关的资料看看