我目前正在學習如何使用數據庫連接以及如何讀取和寫入數據。我正在爲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它可能會讓事情變得更容易理解。 –