2011-05-11 58 views
4

我遇到了与我的数据库连接有关的问题。 我从一个新的空白解决方案开始,然后添加了一个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天的消息,我搜索了很多并删除了C:\ Documents and Settings \ username \ Local Settings \ Application Data \ Microsoft \ Microsoft SQL Server Data \ SQLEXPRESS目录,但是它不适合我..

任何解决方案?请帮助

+0

如果你在你的控制面板>管理工具>服务,你应该看到你的SQL服务器表达。它开始了吗?有时它只是简单的事情,所有的好玩:) –

回答

2

错误消息:

无法生成SQL Server的用户实例由于故障在启动用户实例的进程。

建议你使用用户实例化,因此您的连接字符串将指向一个.mdf文件在磁盘上,而不是数据库的名称。

所以我假设你想连接到一个文件实例而不是服务器实例。

我还会假设你使用的是SqlExpress而不是完整的胖版本。

在这种情况下,您的连接字符串是错误的。它应该看起来更像是这样的:

"Data Source=.\SQLEXPRESS; 
AttachDbFilename=fileOnDisk.mdf; 
Integrated Security=True; 
User Instance=True;" 

用户实例化意味着此服务器实例和内部数据库将只在应用程序中打开连接字符串可见。

您不必使用用户实例 - 您可以设置User Instance=False或只是将其忽略。然后,一旦应用程序建立了连接,就可以将其他工具连接到服务器实例并自己连接到数据库。

+0

非常感谢你让我非常接近我正在寻找的答案... – NewB

相关问题