gpt4 book ai didi

c# - SqlDataReader 没有正确的列数

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:45 26 4
gpt4 key购买 nike

我正在使用 asp.net (webforms) 和 C# 设计一个网站。我有一个包含 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)。我的表有 23 列,但 reader.FieldCount 只返回 18。

调试代码时,我的本地计算机上没有发生此问题。只有当我将项目上传到我的网络服务器时才会发生。

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

最佳答案

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

关于c# - SqlDataReader 没有正确的列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53522998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com