从数据库中检索多行

时间:2015-11-09 07:28:09

标签: c# mysql database

我有一个assignset表,其中有两行。我想从两行1和3中检索set_number。我的代码在下面,现在它检索3和3这是不正确的。任何人都可以帮我这个吗?

MySqlCommand SelectCommand = new MySqlCommand("Select set_number from assignedset where patient_nric='" + NRIC + "'", myConn);

MySqlDataReader myReader;
myConn.Open();
myReader = SelectCommand.ExecuteReader();
int count = 0;
while (myReader.Read())
{
  count = count + 1;
}
if (count > 0)
{
  string SetName = myReader.GetString("set_number");
  //int[] numbers;
  int s = 1;
  while (s <= count)
  {
    MessageBox.Show(SetName);
    s++;
  }

2 个答案:

答案 0 :(得分:0)

while (myReader.Read())
{
  count = count + 1;
}

if (count > 0)
{
  string SetName = myReader.GetString("set_number");      
  ...

在你的代码中,你只能从最后一行获得set_number。

请尝试以下操作。

while (myReader.Read())
{
  string SetName = myReader.GetString("set_number");
  MessageBox.Show(SetName);
  count = count + 1;
}

答案 1 :(得分:0)

逻辑错误。

while (myReader.Read())

用于从数据集中读取每一行数据。

但是你显示了结果 - &gt; MessageBox.Show(SETNAME); 在myReader.Read()循环完成之后,当然你将永远得到最后的结果,即&#34; 3&#34;在你的情况下。

您应该执行以下操作: 试一试

if (myReader.HasRows)
{
    while (myReader.Read())
    {
        string SetName = myReader.GetString("set_number");
        MessageBox.Show(SetName);
    }
}