【问题标题】:Expanding the Results View will enumerate the IEnumerable展开结果视图将枚举 IEnumerable
【发布时间】:2018-05-24 11:56:56
【问题描述】:

我想有人帮忙。 我想执行一个 MS SQL(SELECT 语句)。数据源连接建立,所有在下面的源代码下运行没有错误。但是,在阅读器对象中,结果视图是空白的。此错误消息是:展开结果视图将枚举 IEnumerabl。注意 SELECT 命令。我在 SQL 管理器应用程序上单独运行它并得到结果,语法是一个很好的 SQL 命令。我做错了什么?

// **********************  SQL Connect building   ****************************
SqlConnection myMSSQLConn;
SqlCommand SQL_command = new SqlCommand(); 
SqlDataReader reader;

try //MS SQL connect building
{
    myMSSQLConn = new SqlConnection(AccInstance.SQL_myConnection_string);
}
catch (Exception ex)
{
    AccInstance._MasterErrorText = "Connect error" + ex;
    AccInstance.Messages("39", "");
    return 0;
}

// "SELECT TOP 1 CITYS.V_NUM FROM dbo.CITYS ORDER BY CITYS.V_NUM DESC"
SQL_command.CommandText = MSSQLOperation_command; 
SQL_command.CommandType = CommandType.Text;
SQL_command.Connection = myMSSQLConn;
myMSSQLConn.Open();
reader = SQL_command.ExecuteReader();

while (reader.Read())
{
    MessageBox.Show(reader.GetValue(0)
               + " - " + reader.GetValue(1)
               + " - " + reader.GetValue(2));
}
reader.Close();
SQL_command.Dispose();
myMSSQLConn.Close();

【问题讨论】:

  • 您必须展开结果视图 :-) 按左侧的 +。 “扩展结果视图将枚举 IEnumerable”是对您的警告,而不是查询中的内容
  • 您是否尝试过扩展结果视图?
  • 当您展开 reader 时,调试器会像您一样通过枚举器循环!展开后,reader.Read() 返回 false!

标签: c# visual-studio ienumerable visual-studio-debugging


【解决方案1】:

您可以使用快速手表。选择用于生成 IEnumerable 输出的表达式,然后右键单击 -> 快速观看。

【讨论】:

    【解决方案2】:

    这与 Visual Studio 调试有关。您正在尝试打开 IEnumerable 类型,它可以有各种内部实现。要浏览集合,您必须按左侧的 > 符号。它将为您弹出枚举。但它也可以运行隐藏在其背后的不必要的代码。

    在属性展开之前,它永远不会显示。这不是ListDictionary 类型,您可以在其中访问任何项目。 IEnumerable 必须首先枚举才能正确显示。

    【讨论】:

    • 顺便说一句,按钮确实有三角形而不是加号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    相关资源
    最近更新 更多