连接字符串在C#windows应用程序中不起作用

DoI*_*oIt 2 c# sql sqlconnection

由于某些原因,我无法使用我的连接字符串建立数据连接.我正在使用以下代码

var connectionString = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
SqlCommand cmd = new SqlCommand();
SqlConnection con = new SqlConnection(connectionString);
cmd.Connection = connectionString;

cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = " dbo.SelectAll";

SqlParameter param = new SqlParameter("@tradeDate","201401");

param.Direction = ParameterDirection.Input;
param.DbType = DbType.String;
cmd.Parameters.Add(param);
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,当我将连接属性初始化为我的命令使用时cmd.Connection = connectioString,是抛出异常,如下所示

无法将类型'string'隐式转换为'System.Data.SqlClient.SqlConnection'

Son*_*nül 5

我想你需要

cmd.Connection = con;
Run Code Online (Sandbox Code Playgroud)

您尝试SqlCommand.Connection使用连接字符串设置属性.但是此属性用于指定SqlConnection对象,而不是连接字符串.

从文件;

获取或设置此SqlCommand实例使用的SqlConnection.

并且由于没有从SqlConnection到字符串的隐式对话,这就是编译时错误的原因.

作为一个侧面说明,使用using的语句来处理你SqlConnectionSqlCommand等;

using(SqlConnection con = new SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand())
{
   cmd.Connection = con;
   ...
   ...
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用SqlConnection.CreateCommand()方法在您的使用声明中创建SqlCommand关联的SqlConnection内容;

using(SqlConnection con = new SqlConnection(connectionString))
using(SqlCommand cmd = con.CreateCommand())
{
   ...
   ...
}
Run Code Online (Sandbox Code Playgroud)


Pse*_*nym 5

您混淆了连接数据库和实际SqlConnection所需的连接字符串.

试试这个(针对您的具体代码):

cmd.Connection = con;
Run Code Online (Sandbox Code Playgroud)

根据MSDN,这是一个恰当的例子:

private static void CreateCommand(string queryString, string connectionString)
 {
    using (SqlConnection connection = new SqlConnection(connectionString))
     {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}
Run Code Online (Sandbox Code Playgroud)

链接到原始文章:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx