2012-02-09 91 views
1

我在本地机器上开发了一个winforms应用程序。它从csv文件读取数据并从数据库中查找相关信息(通过执行存储的proc)。将.net项目部署到开发服务器

我把它移到开发服务器上,并试着运行它,但是当我在从app.config文件中获取SQL连接字符串的那一行出现错误。错误是:System.NullReferenceException:未将对象引用设置为对象的实例。。当然,该应用在我的机器上运行良好。

我注释了此代码后面的所有行,并显示错误消息。我猜它与conn.ConnectionString行有关。

SQL数据库指向正确的数据库服务器& UID & pwd是正确的。什么会导致错误?

try 
    { 
     using (SqlConnection conn = new SqlConnection()) 
     { 
      conn.ConnectionString = ConfigurationManager.ConnectionStrings["SilverTicker"].ConnectionString; 
+0

编写一个简单的应用程序,只需连接到数据库并将其放置在开发服务器上即可。如果失败,您可能无法通过您的开发服务器访问数据库服务器。 – 2012-02-09 14:47:48

回答

4

代码示例中的一个对象返回“null”。我猜这是

ConfigurationManager.ConnectionStrings["SilverTicker"].ConnectionString 

放在该行断点和检查.ConnectionStrings集合的内容,以确保它包含“SilverTicker”。

我猜ConfigurationManager.ConnectionStrings["SilverTicket"]是未定义的(可能是因为两个环境中的app.config不一致),所以访问它的.ConnectionString属性会抛出异常。

+0

解决方案是使用settings.settings接口创建connectionstring。谢谢(你的)信息。 – user1111955 2012-02-09 18:39:16

+0

@ user1111955(我可以称你为user9?).settings和app.config相当。我仍然认为你要么没有部署,要么在应用程序中部署错误版本的app.config。它不会被编译进去;你必须部署它。 – 2012-02-09 23:17:25

1

检查其retriving数据或不

如果你这样写

DataSet.Table[0] 

检查TIS返回数据和数据集必须包含在它的表。

1

看起来你不需要第二个.connectionstring。您必须将连接字符串放在app.config中connectionstrings标记的正确位置。该位置需要在app.config中具体说明,否则您的代码将无法找到连接字符串。