繁体   English   中英

从数据库中检索多行

[英]Retrieving multiple rows from database

我有一个assetset表,其中有两行。 我想从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++;
  }
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;
}

逻辑错误。

while (myReader.Read())

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

但您仍显示结果-> MessageBox.Show(SetName); 当然,在完成myReader.Read()循环之后,您将永远得到最后一个结果,在您的情况下为“ 3”。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM