无效的对象名称“表名”

Posted

技术标签:

【中文标题】无效的对象名称“表名”【英文标题】:Invalid object name 'TableName' 【发布时间】:2016-08-19 13:12:22 【问题描述】:

我是 sql server 的新手,我无法解决这个问题。我一直在寻找 2 天,我完全迷路了。

这是我在加载页面时遇到的错误。

无效的对象名称'TableName'

描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。

异常详细信息:System.Data.SqlClient.SqlException:无效对象 名称“表名”。

这是我的代码

private void BindListView()

    string ConString = System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
    using (SqlConnection SConnection = new SqlConnection(ConString))
    
        using (SqlCommand SCommand = new SqlCommand())
        
            SCommand.CommandText = "SELECT * FROM TableName";
            SCommand.Connection = SConnection;
            using (SqlDataAdapter SDAdapter = new SqlDataAdapter(SCommand))
            
                DataTable DTable = new DataTable();
                SDAdapter.Fill(DTable);      //This is the line where i am getting error
                NewsList.DataSource = DTable;
                NewsList.DataBind();
            
        
    

这是我的连接字符串。

<add name="ApplicationServices"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
     providerName="System.Data.SqlClient"/>

代码在我的本地主机上运行良好。但是当网站被托管时,它就无法正常工作了。

在主机上我找到了这个数据库的连接字符串,并在web.config 文件中用这个替换了上面的内容。但是我得到了上面的错误

<add name="ApplicationServices"
     connectionString="Data Source=.\MSSQLSERVER2014;Integrated Security=True;User ID=user;Password=password;Connect Timeout=15;Encrypt=False;Packet Size=4096"
     providerName="System.Data.SqlClient"/>

我认为问题是与数据库连接,我不知道该怎么办。

请帮忙

【问题讨论】:

异常告诉你它在你的数据库中找不到名为“TableName”的表。 本地数据库和托管数据库中是否都存在“TableName”表? 您尝试连接的数据库是否在同一台服务器上? 数据库连接成功但查询失败。检查连接字符串中的服务器和数据库,并确保该表存在于该数据库中。此外,模式限定对象名称以避免歧义(例如dbo.TableName)。 假设表确实存在(我对此表示怀疑),建议对对象使用函数名称。不要使用“TableName”,而是使用“Products”(或表中的任何内容),不要使用“aspnetdb”作为数据库名称,而是使用“WebshopXXX”(或类似名称)。 【参考方案1】:

您的本地主机连接字符串指向您需要附加或移动到服务器的文件数据库,以便您可以使用该数据库文件。

我的建议是将该数据库文件附加到您的本地 sqlexpress 服务器,然后您可以在需要发布时将数据库移动到托管服务器。

【讨论】:

在您的主机计算机上的 Web.config 文件中,您也缺少以下内容:“AttachDBFilename=|DataDirectory|\aspnetdb.mdf”

以上是关于无效的对象名称“表名”的主要内容,如果未能解决你的问题,请参考以下文章

java.sql.SQLException [Microsoft] [ODBC SQL Server Driver] [SQL Server] 对象名“表名”无效

c# 中对oracle数据库update时提示表名无效

SQL 无效的对象名称“地址类型”

授予授权的过程,无效的表名错误

动态SQL 表名无效

sqlserver2008新建查询,表名下出现红波浪线,显示“表名无效”,但仍然可以查询得到结果