2017-02-24 113 views
2

我得到的是我不想要得到的輸出錯誤。我認爲我的代碼是正確的,但可能有一些我錯過了。C#中存儲的MySQL數據庫內容到一個列表

C#代碼:

try 
{ 
string mydbConnection = "datasource=localhost;port=3306;username=root;password=Greenford123;"; 
MySqlConnection connDB = new MySqlConnection(mydbConnection); 
MySqlCommand cmdDataBase = new MySqlCommand("SELECT * FROM project.student", connDB); 
MySqlDataReader DBReader; 
connDB.Open(); 
DBReader = cmdDataBase.ExecuteReader(); 
while (DBReader.Read()) 
{ 
List<string> mylist = new List<string>(); 
mylist.Add(DBReader.ToString()); 

foreach (var item in mylist) 
{ 
MessageBox.Show("The details are " + item); 
} 
} 
connDB.Close(); 
} 
     catch(Exception ex) 
     { 
      MessageBox.Show("Error! " + ex); 
     } 

我想要做的就是從數據庫存儲內容到一個列表,這樣我可以做它的操作。然後我想輸出列表,但輸出不是「字符串」或數據。我得到的輸出是:

OUTPUT: 「細節是MySQL.Data.MySqlClient.MySqlDataReader」

+0

你可以使用EF,然後像'if(myObject.firstName == myEntity.firstName){doSomething; }' –

+0

這裏是爲了從DataReader的列表的示例。 http://stackoverflow.com/questions/8097978/using-datareader-for-filling-listt-in-c-sharp –

+0

[使用的DataReader在C#填充列表]的可能的複製(http://stackoverflow.com/問題/ 8097978 /使用-DataReader的換補防listt式-C-銳) –

回答

0

行:

 DBReader = cmdDataBase.ToString(); 

是錯誤的。它應該是

 DBReader = cmdDataBase.ExecuteReader(); 
+0

我仍然得到錯誤。無法將MySQL轉換爲字符串。我得到的錯誤是在該行「mylist.Add(cmdDataBase);」 – CsharpStudent

+0

這是因爲cmdDataBase是一個命令,而您想將其添加到字符串列表。查看本頁底部的示例部分:https://dev.mysql.com/doc/dev/connector-net/html/T_MySql_Data_MySqlClient_MySqlDataReader.htm您需要調用DBReader.Read()和DBReader.GetString() int長度)。 – Slepz

相關問題