读取显示多个列的数据c#

时间:2014-03-26 16:47:50

标签: c# sql silverlight sqldatareader

我的代码

string s = "";
try
{
    myCon.Open();
    myReader = myCommand.ExecuteReader();
    while (myReader.Read())
    {
        s += myReader["UserName"] +  "\n"; // here is the problem, I wish to show ["count"] ["GameDate"] 
    }
    myReader.Close();
    return s;
}
catch (Exception ex)
{
    return ex.StackTrace;
}
finally
{
    myCon.Close();
}

正如我所评论的那样,在我尝试添加其他两列GameDatecount之前,它一直运作良好:

{
    s += myReader["UserName,count"] +  "\n";
}

没有阅读,我将如何显示两列。

2 个答案:

答案 0 :(得分:3)

我会改变关于此代码的各种事情 - 返回堆栈跟踪,好像它没有问题的有效数据是一个非常糟糕的主意,例如,你应该使用StringBuilder而不是重复的字符串连接。但是,只关注手头的问题...

要检索多个值,您只能将列添加到您为索引器指定的内容中。索引器用于从一个列中检索一个值。相反,您需要两次调用myReader索引器 - 类似这样:

s += myReader["UserName"] + " " + myReader["count"] + "\n";

或者将格式与值检索分开:

s += string.Format("{0} {1}\n", myReader["UserName"], myReader["count"]);

答案 1 :(得分:1)

您需要在单独的语句中指定每个列。现在,它找不到一个名为“UserName,count”的列,所以我想它会引发异常。

您可以像这样更改代码:

s += myReader["UserName"].ToString() + myReader["count"].ToString() +  "\n";