正在从数据库中检索多行
本文关键字:检索 数据库 | 更新日期: 2023-09-27 18:21:19
我有一个assignedset表,其中有两行。我想从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);
}
}