如何从数据库读取整行到 C#?

How to read entire row from database to c#?

假设下面的代码 returns 整个结果行:

using (SqlCommand cmdMessages = new SqlCommand("SELECT * FROM Email where Sender = @usernameLog", conn))
{
    cmdMessages.Parameters.Add(new SqlParameter("@usernameLog", Sender));

    using (SqlDataReader reader = cmdMessages.ExecuteReader())
    {
        while (reader.Read())
        {
            Console.Write(); // Receiver's Name which comes from database
            Console.Write();// The message which comes from same row as the receiver's name
        }
    }
}

查询在 SQL 服务器中运行良好。

来自 SQL 服务器的输出:

 User      hi   

我想在控制台中得到相同的输出。

获取所需的列值:

while (reader.Read())
        {
               reader.GetString(1);
               reader.Getstring(2);
         }

or
reader.GetString("ColumnName1");
reader.GetString("ColumnName2");

如果您只是想在遍历数据读取器时显示正在检索的值,您可以简单地这样做:

using (SqlCommand cmdMessages = new SqlCommand("SELECT * FROM Email where Sender = @usernameLog", conn))
{
     cmdMessages.Parameters.Add(new SqlParameter("@usernameLog", Sender));
     using (SqlDataReader reader = cmdMessages.ExecuteReader())
     {
         int count = reader.FieldCount;
         while (reader.Read())
         {
             for(int i = 0 ; i < count ; i++) 
             {
                  Console.WriteLine(reader.GetValue(i));
             }
         }
     }
}

使用int count = reader.FieldCount; 计算您返回的字段数。然后您将使用 for 语句进行迭代。

如果您只想显示 2 个值,只需将 for 替换为: Console.WriteLine(reader.GetValue(0) + " " + reader.GetValue(1));