2015-02-10 322 views
0

我有相关的数据库和网页上传到服务器上,但无法从服务器访问数据库,但通过VS2010在本地计算机上运行时,我能够访问它。 问服务器管理员也关于这个问题,但他们说服务器端一切正常,他们说的代码有问题。无法访问数据库

以下错误我越来越:

Server Error in '/' Application. 
Invalid object name 'Login'. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Invalid object name 'Login'. 

源错误:

Line 20: SqlCommand com = new SqlCommand("select Password from Login where Username='" + Uname_txt.Text.Trim() + "'", con); 
Line 21: con.Open(); 
Line 22: SqlDataReader dr = com.ExecuteReader(); 
Line 23: try 
Line 24: { 
+0

您要连接的数据库在哪里?在你的笔记本上?在运行Web代码的同一个Web服务器上,或在不同的服务器上?你的连接字符串是什么样的? – 2015-02-10 12:52:08

回答

1

如果一切本地工作,那么问题肯定是在怎么样了设置连接到数据库服务器。

因此,请查看web.config中的连接字符串,并确保它已正确设置(如果使用集成安全性,请确保允许适当的APP POOL访问数据库)。

此外,请确保登录表确实是在数据库中创建的。

一旦你做的一切,你有很多事情要跟进:使用

  1. 停止保留关键字在SQL表达式(密码,登录等),或者至少他们包裹在方括号,例如[密码] 。
  2. 尝试在参考架构的习惯来获得在存储过程中使用表时(dbo.Login而不仅仅是登录)
  3. 提取查询一样,当让你not vulnerable to SQL Injection
0

您还没有贴连接字符串,我怀疑,你没有提供连接字符串中的INITIAL CATALOG,因为它直接连接到主数据库,当然你的表不存在Master。

INITIAL CATALOG =应该添加到连接字符串中。我希望这能帮到您。

注意:您也可以在连接字符串中使用DATABASE =。