【问题标题】:Which alternative can i use instead EOF in asp.net C#?我可以在 asp.net C# 中使用哪种替代方法来代替 EOF?
【发布时间】:2018-03-02 12:22:48
【问题描述】:

我正在尝试在 Asp.net 中制作网络表单。我正在使用 while 循环检查直到 EOF 为假。我如何使用 C# 实现相同的目标。我的vb代码是。

While READER.EOF = False

                Done(count) = myReader("Name").Value
                count += 1
                READER.MoveNext()
End While

我在 C# 代码中尝试过的事情。

while (myReader.Read())
  {                 
   Done[count] = myReader["Name"].ToString();
   count += 1;                
  }

我知道 myReader.read() 会自动移动到下一条记录。现在我的问题是如何检查我的 C# 代码中的文件结尾是否为假。 while (myReader.Read() == false). 方法对吗?我无法得到它。请帮忙!

【问题讨论】:

  • 我认为while(myReader.Read()) 会循环直到到达文件末尾,所以不需要添加任何东西
  • 这是一个 SqlDataReader(我假设是 SQL,但可以是任何 IDataReader)
  • 您的 VB 代码看起来很可疑 - 您是否曾用空结果集对其进行过测试?

标签: c# asp.net vb.net


【解决方案1】:

假设您指的是数据阅读器

您不想用 false 测试相等性。 Read() 将为您做的是读取当前记录并前进到下一条记录,如果有更多记录,则返回 true,当到达末尾时返回 false。

读取数据需要GetString()GetInt32,具体取决于数据类型。或者,您可以使用如下索引 myReader[0]myReader["Name"] 将其作为对象获取并将其转换为您想要的类型,尽管我推荐前者。

您可以查看here 以了解有关Read() 方法的详细信息。

更新:包括 VB 代码

在VB中实现的方法如下:

Do While myReader.Read()
    Done(count) = myReader("Name").Value
    count += 1
End While

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    相关资源
    最近更新 更多