无法访问数据库

时间:2015-02-10 06:13:45

标签: asp.net sql-server

我有与之相关的数据库和网页上传到服务器但无法从服务器访问数据库,但是当通过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: { 

2 个答案:

答案 0 :(得分:1)

如果一切都在本地运行,那么问题肯定在于您如何设置连接到服务器上的数据库。

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

另外,确保确实在数据库中创建了登录表。

一旦你做了所有这些,你就会有很多事情需要跟进:

  1. 在SQL表达式(密码,登录等)中停止使用保留关键字,或至少将它们包含在[密码]等括号中。
  2. 尝试习惯在使用表时引用模式(dbo.Login而不仅仅是Login)
  3. 在存储过程中提取类似的查询,以便您not vulnerable to SQL Injection

答案 1 :(得分:0)

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

INITIAL CATALOG =应添加到您的连接字符串中。我希望这会对你有所帮助。

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