【发布时间】:2021-10-14 18:49:58
【问题描述】:
我正在尝试从我在 MYSQL 中创建的数据库中获取数据。我相信我的代码中的 DML 是正确的。我在另一个线程上看到我需要使用数组,以便我可以从表中获取所有行,但我正在努力将它们包含在我的代码中:
string cs = "server...";
MySqlConnection connection = new MySqlConnection(cs);
try
{
Console.WriteLine("Connection sur MySQL...");
connection.Open();
string Insertion ="insert into Passager(...)values(...)";
string Insert2 = "insert into Reservation(...)values(...)";
string req1 = "SELECT CodePassager,";
string req2 = "SELECT CodePassager,...";
string req3 = "SELECT CodePassager,...";
string joint = "SELECT Reservation...";
MySqlCommand NQuery = new MySqlCommand(Insertion, connection);
MySqlCommand NQuery2 = new MySqlCommand(Insert2, connection);
MySqlCommand requete1 = new MySqlCommand(req1, connection);
MySqlCommand requete2 = new MySqlCommand(req2, connection);
MySqlCommand requete3 = new MySqlCommand(req3, connection);
MySqlCommand reqjoint = new MySqlCommand(joint, connection);
NQuery.ExecuteNonQuery();
NQuery2.ExecuteNonQuery();
//1st request
using (MySqlDataReader reader1 = requete1.ExecuteReader())
{
reader1.Read();
int CodePassager;
string Nom, Prenom;
CodePassager = (int)reader1[0];
Nom = (string)reader1[1];
Prenom = (string)reader1[2];
Console.WriteLine("code: {0},nom:{1},prenom:{2}", CodePassager, Nom, Prenom);
reader1.Close();
}
//2nd request
using (MySqlDataReader reader2 = requete2.ExecuteReader())
{
reader2.Read();
int CodePassager;
string Nom, Prenom, Adresse;
CodePassager = (int)reader2[0];
Nom = (string)reader2[1];
Prenom = (string)reader2[2];
Adresse = (string)reader2[3];
Console.WriteLine("code:{0},...);
reader2.Close();
}
//3rd request
using (MySqlDataReader reader3 = requete3.ExecuteReader())
{
reader3.Read();
int CodePassager;
string Nom, Prenom, Adresse;
CodePassager = (int)reader3[0];
Nom = (string)reader3[1];
Prenom = (string)reader3[2];
Adresse = (string)reader3[3];
Console.WriteLine("code: {0}...);
Console.WriteLine("---------------------------------------------------");
Console.WriteLine("Reservation(s) pour ce client:");
Console.WriteLine("---------------------------------------------------");
reader3.Close();
//request to show every reservation per passenger
using (MySqlDataReader reader4 = reqjoint.ExecuteReader())
{
reader4.Read();
int CodeReservation;
string StatutReservation, DateReservation;
CodeReservation = (int)reader4[0];
StatutReservation = (string)reader4[1];
DateReservation = (string)reader4[2];
Console.WriteLine("code reservation:{0}...);
reader4.Close();
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
connection.Close();
}
使用我当前的代码,每个请求只能得到一个结果,但我需要所有数据。
(对不起,英语不是我的母语。)
【问题讨论】:
-
搜索 MySqlDataAdapter 的工作原理。它允许您获取包含查询返回的所有数据的 DataTable。 DataTable 是一个美化的数组。
-
我一定要看看谢谢,但由于这是一个学校项目,我应该使用我目前学到的东西希望包括数组
-
我认为MySqlDataReader 的示例部分是您正在寻找的。span>
-
感谢@DanielDearlove 的答案,但我已经看过它并且它没有显示如何获得多个输出,我做了与示例相同的事情,我只得到一行从桌子上。
-
查看@DanielDearlove 提到的示例部分,我可以看到答案隐藏在其中的某个地方。检查那里的代码 sn-p 中的单词“while”