SQL Server中的Connection vs Command对象

时间:2016-06-12 15:42:29

标签: sql-server sql-server-2008 ado

我不确定这两件事在插入,更新和删除时使用连接和命令对象之间的区别是什么,这是从SQL Server调用的存储过程。

例如关于连接:

template <typename T>
auto read(const uint8_t *ptr) -> T {
    union {
        uint8_t buf[sizeof(T)];
        T value;
    } u;
    memcpy(u.buf, ptr, sizeof(T));
    return u.value;
}

关于命令obj:

Cn.Execute "Exec ProcedureName" 

我真的不知道何时使用它们,因为它们看起来很相似。

提前致谢

1 个答案:

答案 0 :(得分:4)

有很多文章可供使用,它解释了Ado.Net中Command和Connection对象的使用。其中很少如下:

http://www.c-sharpcorner.com/UploadFile/c5c6e2/working-with-command-object/

http://www.c-sharpcorner.com/uploadfile/mahesh/connection-object-in-ado-net/

http://csharp.net-informations.com/data-providers/csharp-ado.net-connection.htm

连接对象: Connection对象是用于在应用程序与数据源之间建立链接的基本Ado.Net组件。因此,您可以定义一个连接字符串,用于初始化与数据源的连接。

命令对象: Command对象是另一个Ado.Net组件,用于使用连接对象对数据源执行查询。所以基本上你需要连接和命令对象来对数据源执行查询。使用Command对象可以执行内联查询,存储过程等。

示例代码:

        SqlConnection con = new SqlConnection(connectionString); // creates object of connection and pass the connection string to the constructor
        SqlCommand cmd = new SqlCommand(); // creates object of command
        cmd.Connection = con; // tells command object about connection, where the query should be fired
        cmd.CommandText = "Query"; // your query will go here
        cmd.CommandType = System.Data.CommandType.Text; // it tells the command type which can be text, stored procedure

        con.Open(); // opens the connection to datasource
        var result = cmd.ExecuteReader(); // executes the query on datasource using command object
        con.Close(); // closes the connection

我希望这会对你有所帮助。 :)