Beep
Beep

Reputation: 2823

read data showing more than one column c#

My Code

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();
}

As I have commented, It works well until I try and add the other two columns GameDate and count Like so:

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

It dose not read, how would I show both columns.

Upvotes: 0

Views: 176

Answers (2)

shree.pat18
shree.pat18

Reputation: 21757

You need to specify each column in a separate statement. Right now, it can't find a column called "UserName,count", so I suppose it throws an exception.

You can change your code like this:

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

Upvotes: 1

Jon Skeet
Jon Skeet

Reputation: 1500525

There are various things I would change about this code - returning a stack trace as if it's valid data obtained with no problems is a really bad idea, for example, and you should use a StringBuilder instead of repeated string concatenation. However, focusing on just the problem at hand...

To retrieve more than one value, you can't just add the columns into what you specify to the indexer. The indexer is meant to retrieve one value from one column. Instead, you need to call the myReader indexer twice - something like this:

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

Or to keep the formatting separate from the value retrieval:

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

Upvotes: 3

Related Questions