我遇到了数据库连接问题。 我从一个新的空白解决方案开始,然后我添加了一个WCF库项目,最后但并非最不重要的是一个WCF网站(服务)。 在网站上,我添加了对库的引用,其中我有接口(数据协定),实现接口的类和数据类。 我想要做的是连接到服务器上的数据库,并尝试从那里检索一些数据。 所以连接字符串看起来像:
<add name="myConnectionString" connectionString="Data Source=MyServer; Initial Catalog=MyDatabase; User Id=me; Password=me123;" providerName="System.Data.SqlClient" />
这就是我尝试连接数据库的方式:
public List<string> GetEngagements(string id)
{
string sql = "SELECT myColumn FROM myTable WHERE Id = '" + id + "'";
string connString = string.Empty;
SqlConnection connDB;
connString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
connDB = new SqlConnection(connString);
SqlCommand command = new SqlCommand(sql, connDB);
connDB.Open();
SqlDataReader rdr = command.ExecuteReader();
List<string> numbers = new List<string>();
while (rdr.Read())
{
numbers.Add(rdr[0].ToString());
}
rdr.Close();
return numbers;
}
我在connDB.Open()上遇到异常。 然后异常消息说: 由于启动用户实例的进程失败,无法生成SQL Server的用户实例。连接将被关闭。
我已经收到此消息2天了,我已经google了很多并删除了C:\ Documents and Settings \ username \ Local Settings \ Application Data \ Microsoft \ Microsoft SQL Server Data \ SQLEXPRESS目录但是它对我不起作用..
任何解决方案????请帮忙
答案 0 :(得分:2)
错误消息:
由于启动用户实例的进程失败,无法生成SQL Server的用户实例。
建议您使用用户实例化,因此您的连接字符串将指向磁盘上的.mdf
文件而不是数据库的名称。
所以我假设您要连接到文件实例而不是服务器实例。
我还假设你使用的是SqlExpress而不是完整的胖版本。
在这种情况下,您的连接字符串是错误的。看起来应该更像这样:
"Data Source=.\SQLEXPRESS;
AttachDbFilename=fileOnDisk.mdf;
Integrated Security=True;
User Instance=True;"
用户实例化意味着此服务器实例和数据库内部仅对打开连接字符串的应用程序可见。
您不必使用用户实例化 - 您可以设置User Instance=False
或将其保留。然后,一旦应用程序建立了连接,您就可以将其他工具连接到服务器实例并自己连接到DB。