所以我在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();
此刻我被打败了,不知道该转向哪里......
答案 0 :(得分:0)
检查您的函数GetLatestBanner()
是否返回包含一些表的数据集。您还可以使用条件将数据集中的表计数检查为 -
if( dsflash.Tables.Count > 0 )
{
if (dsflash.Tables[0].Rows.Count > 0) //error here
{
//your rest of the code.
}
}
这将确保只有当数据集中存在表格时,它才会继续使用您的代码。