gpt4 book ai didi

c# - 为什么 DataReader 给出 "Enumeration Yielded No Results"?

转载 作者:太空狗 更新时间:2023-10-30 01:34:27 27 4
gpt4 key购买 nike

我正在使用具有 2 个参数的非常简单的存储过程。然后它会填满一个 DataReader,但是当我运行代码时,DataReader 会抛出一条错误消息“Enumeration yielded no results”,尽管它已通过 reader.Read() 行。

我的函数将电子邮件作为参数传递。然后建立连接:

SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["IdesignTriviaConnection"].ConnectionString);
SqlCommand cmd = new SqlCommand("usp_GetCurrentLink", con);
SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@date", SqlDbType.DateTime, 100).Value = DateTime.Today;
cmd.Parameters.Add("@email", SqlDbType.VarChar, 100).Value = email;

在此之后它打开连接并建立阅读器:

try
{
if (cmd.Connection.State == ConnectionState.Closed)
{
cmd.Connection.Open();
}
reader = cmd.ExecuteReader();

while (reader.Read())
{
long LinkID = reader.GetInt32(0);
String URL = reader.GetString(1);
long Completed = reader.GetInt32(2);

if (LinkID == 0)
{
link = "0";
}
else
{
if (Completed == 1)
{
link = "1";
}
else
{
link = URL;
}
}
}

如前所述,存储过程在查询分析器中运行良好,我什至使用调试器看到它​​实际上返回了预期值:

那么我哪里出错了?为什么,如果 datareader 未能枚举任何数据,它会通过 reader.Read() 行吗?如果我愿意,为什么我能够在调试器中看到该数据?

最佳答案

因此,答案是从日期参数中删除长度。这就是我复制和粘贴而没有注意到该问题的结果。尽管它正在返回数据,但显然数据读取器认为没有数据。感谢那些建议修复的人。

关于c# - 为什么 DataReader 给出 "Enumeration Yielded No Results"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30600370/

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