我将它从服务器移动到本地机器后无法运行asp.net网站 - 找不到表0

时间:2011-03-31 09:51:14

标签: .net database enterprise-library

所以我在2005年建立了.Net 3.5的旧应用程序。该应用程序在带有sql server 2005的W2k3服务器上运行良好。

我已经使用sql server 2008从我的localhost xp机器上的备份中复制了应用程序文件和导入的数据库。我已将数据库兼容性设置为90,这是100%sql server 2005 compat模式。将文件放在Visual Studio网站项目中并使用“浏览”运行​​它。我收到“无法找到表0”的错误。

我在web.config中启用了调试并转到问题所在的文件。如果我计算结果,那么错误将移动到具有类似代码的另一个文件。我知道我应该计算结果,但应用程序运行得很好,因为它在网络服务器上。

应用程序正在使用Enterprise Library 1.1,数据库连接信息位于web.config中引用的dataConfiguration.config中。我编辑了dataConfiguration.config以反映我在localhost上的连接信息。

触发错误的代码如下:

        DataSet dsflash = new DataSet();
        dsflash = objFlash.GetLatestBanner();
        if (dsflash.Tables[0].Rows.Count > 0)  //error here
        {
//            lnkLink.HRef = dsflash.Tables[0].Rows[0]["Link"].ToString();

此刻我被打败了,不知道该转向哪里......

1 个答案:

答案 0 :(得分:0)

检查您的函数GetLatestBanner()是否返回包含一些表的数据集。您还可以使用条件将数据集中的表计数检查为 -

if( dsflash.Tables.Count > 0 ) 
{
   if (dsflash.Tables[0].Rows.Count > 0)  //error here
   {
      //your rest of the code.
   }
}

这将确保只有当数据集中存在表格时,它才会继续使用您的代码。