Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SqlCommand和ExecuteReader返回非公共成员_C#_Sql_Sql Server - Fatal编程技术网

C# SqlCommand和ExecuteReader返回非公共成员

C# SqlCommand和ExecuteReader返回非公共成员,c#,sql,sql-server,C#,Sql,Sql Server,我使用SqlCommand从.sql文件执行脚本查询 我通过一个执行者得到结果 但价值观是作为非公共成员的,我无法访问它 你知道为什么以及如何解决这个问题吗 代码 这是因为ExecuteReader()返回的是SqlDataReader,而不是条目 : 如前所述,您可能不应该使用foreach。出于兼容性原因,需要实现它,但是这里的while(reader.Read())循环更简单。也就是说,如果需要,您可以使用foreach。用户值实现IDataRecord,您可以使用该界面访问值 forea

我使用SqlCommand从.sql文件执行脚本查询

我通过一个执行者得到结果

但价值观是作为非公共成员的,我无法访问它

你知道为什么以及如何解决这个问题吗

代码 这是因为ExecuteReader()返回的是SqlDataReader,而不是条目

:


如前所述,您可能不应该使用
foreach
。出于兼容性原因,需要实现它,但是这里的
while(reader.Read())
循环更简单。也就是说,如果需要,您可以使用
foreach
用户
值实现
IDataRecord
,您可以使用该界面访问值

foreach (IDataRecord user in reader)
{
    // access user[0], user["field"], etc. here
}

你是否曾经考虑过如何使用这个API?如果你不想处理所有的API,请考虑一些类似“dppER”(NuGET的搜索)。整个工作是:
var users=conn.Query(script.ToList()
@MarcGravel-实际上我想用json公开这些用户,所以我搜索的可能就是Dapper。谢谢。@MarcGravel-我在这里找到了一个解决方案:注意:
命令
读取器
也应该有
使用
语句。好的,我试过了,但是读取器[0]返回了0,所以我认为它不起作用。事实上这是个好结果,我是个白痴。非常感谢。
private static void ReadOrderData(string connectionString)
{
    string queryString =
        "SELECT OrderID, CustomerID FROM dbo.Orders;";

    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call Read before accessing data.
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
        }

        // Call Close when done reading.
        reader.Close();
    }
}
foreach (IDataRecord user in reader)
{
    // access user[0], user["field"], etc. here
}