gpt4 book ai didi

c# - 使用 C# 的 SQLDataReader 值出现 System.IndexOutOfRangeException

转载 作者:行者123 更新时间:2023-11-30 15:42:13 24 4
gpt4 key购买 nike

我有一个返回三个整数的 SQLDataReader。但是,有时其中两个整数将返回空值。

为了解决这个问题,我写了以下内容:

int shoppingCartHeadID = 0;
int billID = 0;
int delID = 0;

conn.Open();
reader = comm.ExecuteReader();
if (reader.Read())
{
shoppingCartHeadID = Convert.ToInt32(reader["shoppingCartHeadID"]);

if (!reader.IsDBNull(billID))
{
billID = Convert.ToInt32(reader["billID"]);
}

if (!reader.IsDBNull(delID))
{
delID = Convert.ToInt32(reader["delID"]);
}
}
reader.Close();

不幸的是,我仍然收到错误消息。有什么建议吗?

PS 我也尝试过,但没有成功

if (reader["billID"] != null)

最佳答案

我会尝试通过索引而不是列名进行访问,以防万一您传递的是不存在的列名。

另外,确保你用 using block 包装你的阅读器,这样在任何情况下,即使有异常,你的阅读器也会被正确关闭和处理,例如以这种方式:

...
using(var reader = comm.ExecuteReader())
{
if (reader.Read())
{
shoppingCartHeadID = Convert.ToInt32(reader[0]);

if (!reader.IsDBNull(1))
{
billID = Convert.ToInt32(reader[1]);
}

if (!reader.IsDBNull(2))
{
delID = Convert.ToInt32(reader[2]);
}
}
}

关于c# - 使用 C# 的 SQLDataReader 值出现 System.IndexOutOfRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7711807/

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