C# : 對 MySQL 查詢資料(google: SQL 查 欄位型態)

C# : 對 MySQL 查詢資料(google: SQL 查 欄位型態)

C# : 對 MySQL 查詢資料(google: SQL 查 欄位型態)



可以使用 MySqlCommand 的 ExecuteScalar() 直接查詢單筆資料的單一欄位結果值,也可以使用 MySqlCommand 的 ExecuteReader() 取得多筆資料並獲得欄位數、欄位名稱、資料型態等訊息。


查詢單筆資料的單一欄位值,如果查無資料,所得的結果為 null …

EX: 查詢指定條件的單一欄位值
 
 //開啟連線
 MySqlConnection conn = new MySqlConnection(“server=127.0.0.1;user=root;database=test;port=3306;password=1111;”);
 conn.Open();

 //查詢 test_table 資料表中 id 欄位為 1 的 name 欄位值
 string sql = “SELECT name FROM test_table WHERE id=1”;
 MySqlCommand cmd = new MySqlCommand(sql, conn);
 
 //取得 name 欄位值
 string _name = (string)cmd.ExecuteScalar();
 
EX: 查詢單一結果值

 //開啟連線
 MySqlConnection conn = new MySqlConnection(“server=127.0.0.1;user=root;database=test;port=3306;password=1111;”);
 conn.Open();

 //查詢 test_table 資料表的資料筆數
 string sql = “SELECT COUNT(*) FROM test_table WHERE 1”;
 MySqlCommand cmd = new MySqlCommand(sql, conn);
 
 //取得筆數值
 int _count = (int)(long)cmd.ExecuteScalar();
 
查詢多筆且多欄位資料可透過 MySqlDataReader 的 HasRows、FieldCount、GetName()、GetDataTypeName() 取得是否查到資料的結果、欄位數、欄位名、欄位型態等資訊,另外透過 while 迴圈遍歷 Read() 可逐筆取出資料,不但可以序號做為索引,也可以欄位名稱做為索引取得資料:

EX:
 //開啟連線
 MySqlConnection conn = new MySqlConnection(“server=127.0.0.1;user=root;database=test;port=3306;password=1111;”);
 conn.Open();
 
 //查詢 test_table 資料表的全部資料
 string sql = “SELECT * FROM test_table WHERE 1”;
 MySqlCommand cmd = new MySqlCommand(sql, conn);
 
 MySqlDataReader data = cmd.ExecuteReader();
 
 //如果有查到資料為 true 否則為 false
 Console.WriteLine(“是否查到資料:{0}”, data.HasRows);
 
 Console.WriteLine(“欄位數:{0}”, data.FieldCount);
 
 //列出各欄位名稱及型態
 for(int i = 0; i < data.FieldCount; i++){
  Console.WriteLine(“欄位 {0} 的名稱為 {1} ; 資料型態為 {2}”, i, data.GetName(i), data.GetDataTypeName(i));
 }
 
 //列出查詢到的資料
 while(data.Read()){
 
  //以欄位名稱取得資料並列出
  Console.WriteLine(“id={0} , name={1}”, data[“id”], data[“name”]);
  
  //以欄位順序取得資料並列出
  Console.WriteLine(“id={0} , name={1}”, data[0], data[1]);
 }
 
 data.Close();


 


發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *