黑马程序员技术交流社区

标题: C#之SQL [打印本页]

作者: 面朝大海,春暖    时间: 2013-10-17 12:07
标题: C#之SQL
本帖最后由 面朝大海,春暖 于 2013-10-17 16:24 编辑

                 SqlConnection con = new SqlConnection(str)
                 SqlCommand cmd =new SqlCommand(sql,con)
上述代码与下面的代码:
              SqlConnection con = new SqlConnection(str)
                 SqlCommand cmd =con.createcommand()

                cmd.CommandText=sql;
用法上有什么区别??

作者: ˋ初°见    时间: 2013-10-17 12:44
本帖最后由 ˋ初°见 于 2013-10-17 12:48 编辑

SqlConnection con = new SqlConnection(str)
SqlCommand cmd =new SqlCommand(sql,con)
先创建一个连接对象con,在创建一个命令对象cmd并且在创建对象时,就把要执行的sql语句和连接对象赋值给cmd对象


上述代码与下面的代码:
              SqlConnection con = new SqlConnection(str)
              SqlCommand cmd =con.createcommand()
              cmd.CommandText=sql;
用法上有什么区别??

先创建一个连接对象con,通过con对象的createcommand方法创建出一个命令对象cmd,并且它的Connection属性为con,然后再把sql语句赋值给cmd对象的CommandText属性


二种方法没啥区别,都是创建出一个Command命令对象,它的Connection属性为con,CommanText属性为sql,先赋值后赋值而已。最方便的是使用这种方法:自动释放和关闭对象省掉了Dispose和Close
using (SqlConnection conn = new SqlConnection(connStr))
{
                using (SqlCommand cmd = new SqlCommand(cmdText, conn))
                {
                           .............
                }
}
作者: Liu阳    时间: 2013-10-17 16:17
你用反编译看看CreateCommand的源码
public SqlCommand CreateCommand()
{
    return new SqlCommand(null, this);string cmdText,SqlConnection sqlConnection
}
没有区别
作者: aihuahuaxx    时间: 2013-10-17 19:13
没有区别的。

一个是创建的时候当做参数。
一个创建之后设置参数。

基本没什么区别的,如果想看看两个方法里面的东西就用反射看看。
作者: 喜之郎果冻    时间: 2013-10-17 21:36
没有什么区别,一个是创建的时候当做参数,一个创建之后设置参数。仅此而已,实际上都是一样的,换了种写法






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2