SqlDataReader 没有正确的列数
SqlDataReader does not have the correct columns count
我正在使用 asp.net (webforms) 和 C# 设计一个网站。我有一个 table 有 23 列。
在下面的代码中,reader
是一个 SqlDataReader
,command 是一个 SqlCommand
对象。我正在使用以下代码从中输出查询结果:
command.CommandText = "SELECT * FROM devices WHERE device_level='" + ACCESS_LVL + "'" + "ORDER BY device_name";
reader = command.ExecuteReader();
然后我使用
遍历它
while(reader.Read());
输出结果。
但是访问某些列会导致索引超出范围异常(索引超过 17)。我的 table 有 23 列,但 reader.FieldCount
returns 只有 18.
调试代码时,我的本地计算机上没有出现此问题。只有当我将项目上传到我的网络服务器时才会发生。
使用 mylittleadmin 数据库管理面板(安装在远程服务器上)我可以看到所有 23 列。
SQL 服务器在这里是正确的。如果 SELECT * FROM devices ...
returns 18 列,则:正在连接的数据库上的 devices
对象: 有 18 列。听起来你让你的模式在不同的环境/数据库之间有所不同。或者:您可能有多个登录名和特定于登录名的对象(即同一数据库中两个不同数据库模式中的对象),因此:当您查询它时如您所见 一个对象作为devices
- 当您查询它作为应用程序帐户时,您会看到不同 对象。通常,这将是 dbo.devices
与 abolfa.devices
(例如)。
我正在使用 asp.net (webforms) 和 C# 设计一个网站。我有一个 table 有 23 列。
在下面的代码中,reader
是一个 SqlDataReader
,command 是一个 SqlCommand
对象。我正在使用以下代码从中输出查询结果:
command.CommandText = "SELECT * FROM devices WHERE device_level='" + ACCESS_LVL + "'" + "ORDER BY device_name";
reader = command.ExecuteReader();
然后我使用
遍历它while(reader.Read());
输出结果。
但是访问某些列会导致索引超出范围异常(索引超过 17)。我的 table 有 23 列,但 reader.FieldCount
returns 只有 18.
调试代码时,我的本地计算机上没有出现此问题。只有当我将项目上传到我的网络服务器时才会发生。
使用 mylittleadmin 数据库管理面板(安装在远程服务器上)我可以看到所有 23 列。
SQL 服务器在这里是正确的。如果 SELECT * FROM devices ...
returns 18 列,则:正在连接的数据库上的 devices
对象: 有 18 列。听起来你让你的模式在不同的环境/数据库之间有所不同。或者:您可能有多个登录名和特定于登录名的对象(即同一数据库中两个不同数据库模式中的对象),因此:当您查询它时如您所见 一个对象作为devices
- 当您查询它作为应用程序帐户时,您会看到不同 对象。通常,这将是 dbo.devices
与 abolfa.devices
(例如)。