SqlDataReader没有正确的列计数



我正在使用asp.net(webforms(和C#设计一个网站。我有一张有23列的表。

在下面的代码中,readerSqlDataReader,命令是SqlCommand对象。我使用以下代码从中输出查询结果:

command.CommandText = "SELECT * FROM devices WHERE device_level='" + ACCESS_LVL + "'" + "ORDER BY device_name";
reader = command.ExecuteReader();

然后我用循环浏览

while(reader.Read());

以输出结果。

但是,访问某些列会导致索引超出范围异常(索引高于17(。我的表有23列,但reader.FieldCount只返回18列。

调试代码时,本地计算机上不会出现此问题。只有当我将项目上传到我的web服务器时才会发生这种情况。

使用mylittleadmin数据库管理面板(安装在远程服务器上(,我可以看到所有23列。

这里的SQL服务器是正确的。如果SELECT * FROM devices ...返回18列,则:连接到的数据库上的devices对象:有18列。听起来你已经让你的模式在不同的环境/数据库之间产生了分歧。或者:您可能有多个登录和登录特定的对象(即同一数据库中两个不同数据库模式中的对象(,因此:当您以的方式查询时,您会看到一个对象为devices,而当您以应用程序帐户的形式查询时,会看到一个不同的。通常,这将是dbo.devicesabolfa.devices(例如(。

相关内容

  • 没有找到相关文章

最新更新