我目前正在学习如何使用数据库连接以及如何读取和写入数据。我正在为Visual Studio使用Mysql数据/连接器6.1。这支持访问本地主机mysql服务器。C#列表<string>列表中<string> [] .toList()
我想显示记录在我使用这个代码的人的个人信息:
string query = "SELECT * FROM gebruiker WHERE id='" + id + "'";
List<string>[] list = new List<string>[5];
list[0] = new List<string>();
list[1] = new List<string>();
list[2] = new List<string>();
list[3] = new List<string>();
list[4] = new List<string>();
if (this.openConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, connection);
//Een nieuw datareader object maken en dan query uitvoeren
MySqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
list[0].Add(dataReader["id"].ToString());
list[1].Add(dataReader["voornaam"].ToString());
list[2].Add(dataReader["achternaam"].ToString());
list[3].Add(dataReader["geboortedatum"].ToString());
list[4].Add(dataReader["Rol_id"].ToString());
}
dataReader.Close();
this.closeConnection();
return list;
}
我使用列表,因为我下面这个教程:tutorial
然后当我返回列表我想获得这些数据并将其添加到我的winform上的标签。这是我使用的代码:
DBconnect connectDB = new DBconnect();
List<string>[] persGegevens = connectDB.persoonlijkeGegevens(userId);
for (int i = 0; i <= persGegevens.Count(); i++)
{
switch (i)
{
case 0:
break;
case 1:
lblVoornaamVrbl.Text = persGegevens[i].ToString();
break;
case 2:
lblAchternaamVrbl.Text = persGegevens[i].ToString();
break;
case 3:
lblGbrtedatumVrbl.Text = persGegevens[i].ToString();
break;
case 4:
lblFuntieVrbl.Text = persGegevens[i].ToString();
break;
default:
break;
}
}
但不幸的代码不会将数据转换成列表的toString但该元素将得到转换的toString。这就是我得到的:system.collections.generic.list`1 [system.string] 我也试图用foreach做到这一点,但没有奏效,因为我无法指定哪个元素必须放置在哪个标签中。
你们知道这里有什么问题吗?这是检索数据的正确方法吗?或者我应该使用别的东西来存储我的数据?
使用数据表来使你的代码更容易http://stackoverflow.com/questions/11993211/how-to-fill-datatable-with-sql-table –
@MurrayFoxcroft决不工作在这样的事情上使用DataTable使事情变得更容易,以我的经验 – Jonesopolis
我会建议寻找使用实体框架和Linq它可能会让事情变得更容易理解。 –