備注
1.以下出現的代碼欄位為C#語法格式
2.持續更新ing
需要參考的命名空間
using MySql.Data.MySqlClient;
一、MySqlConnection
示例的使用方法
1 //發送資料庫連接欄位 創建連接通道 2 using (MySqlConnection connection = new MySqlConnection(m_connectionString)) 3 { 4 try 5 { 6 //打開連接通道 7 connection.Open(); 8 } 9 catch (MySqlException E) 10 { 11 //如果有例外 則連接失敗 12 throw new Exception(E.Message); 13 } 14 finally 15 { 16 //關閉連接通道 17 connection.Close(); 18 } 19 }
m_connectionString為資料庫的連接欄位,包含了資料庫的IP欄位,埠號和MySQL資料庫用戶名和登錄密碼,傳參型別為string
資料庫連接字串的格式
m_connectionString = string.Format("Server = {0}; port = {1}; Database = {2}; User ID = {3}; Password = {4}; Pooling=true; Charset = utf8;", m_databaseIP, m_databasePort, m_databaseName, m_userID, m_password);
關于string.Format的用法可以看這篇博文https://www.cnblogs.com/net-sky/p/10250880.html
二、MySqlCommand
示例的使用方法
1 using (MySqlConnection connection = new MySqlConnection(m_connectionString)) 2 { 3 using (MySqlCommand cmd = new MySqlCommand(SQLString, connection)) 4 { 5 try 6 { 7 connection.Open(); 8 int rows = cmd.ExecuteNonQuery(); 9 } 10 catch (MySqlException E) 11 { 12 throw new Exception(E.Message); 13 } 14 finally 15 { 16 cmd.Dispose(); 17 connection.Close(); 18 } 19 } 20 }
1.MySqlCommand的四種初始化方法
- MySqlCommand()
- MySqlCommand(String)
- MySqlCommand(String, MySqlConnection)
- MySqlCommand(String, MySqlConnection, MySqlTransaction)
可選擇的傳參:
- String:給出的SQL陳述句
- MySqlConnection:連接資料庫的實體物件
- MySqlTransaction:用于表示要在MySQL資料庫中進行的SQL事務
2.ExecuteNonQuery()方法回傳值
- 對于 Update,Insert,Delete陳述句執行成功是回傳值為該命令所影響的行數,如果影響的行數為0時回傳的值為0,
- 對于所有其他型別的陳述句,回傳值為 -1,
- 如果發生回滾,回傳值也為 -1 ,
-
我們平時對于更新操作通過判斷回傳值是否大于0沒有問題而且比較好,但是對于其他的操作如對資料庫結構的操作,如果操作成功時回傳的卻是-1,這種情況跟我們平時的思維方式有點差距所以應該好好的注意了,例如對資料庫共添加一個資料表的Create操作,當創建資料表成功時回傳-1,如果操作失敗的話(如資料表已經存在)往往會發生例外,所以執行這種操作時最好用try--catch--陳述句來容錯,
3.Dispose()方法
釋放MySqlCommand所使用的所有資源
4.cmd的CommandTimeout引數
在終止執行命令和生成錯誤的嘗試之前,設定的等待時間
命名空間
using System.Data
三、DataSet
示例的使用方法
1 public static DataSet ExecuteQuery(string SQLString) 2 { 3 using (MySqlConnection connection = new MySqlConnection(m_connectionString)) 4 { 5 DataSet ds = new DataSet(); 6 try 7 { 8 connection.Open(); 9 MySqlDataAdapter da = new MySqlDataAdapter(SQLString, connection); 10 da.Fill(ds); 11 } 12 catch (MySqlException ex) 13 { 14 connection.Close(); 15 throw new Exception(ex.Message); 16 } 17 finally 18 { 19 connection.Close(); 20 } 21 return ds; 22 } 23 }
該方法實作的功能是執行查詢陳述句,回傳DataSet
1.MySqlDataAdapter的初始化方法
- MySqlDataAdapter()
- MySqlDataAdapter(MySqlCommand)
- MySqlDataAdapter(String, MySqlConnection)
- MySqlDataAdapter(String, String)
可選擇的傳參:
- 前兩種實體化方法不多做介紹,主要說一下后兩種
- String:SelectCommand變數型別,主要用于獲取或設定用于在資料源中選擇記錄的SQL陳述句或存盤程序;MySqlConnection:連接資料庫的實體物件
- String:SelectCommand變數型別,主要用于獲取或設定用于在資料源中選擇記錄的SQL陳述句或存盤程序;String:連接的字串;示例:MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, name FROM mytable", "Data Source=localhost;database=test");
2.DataSet中的Fill方法
-
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)
使用 DataSet 和源表名稱、命令字串以及命令列為,在 DataSet 的指定范圍中添加或重繪某些行以使它們與資料源中對應的行相一致,
- Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)
在 DataSet 的指定范圍中添加或重繪行以匹配使用 DataSet 和 DataTable 名稱的資料源中的行,
- Fill(DataSet, Int32, Int32, String)
在 DataSet 的指定范圍中添加或重繪行以匹配使用 DataSet 和 DataTable 名稱的資料源中的行,
- Fill(Int32, Int32, DataTable[])
在 DataTable 中添加或重繪行,以與從指定的記錄開始一直檢索到指定的最大數目的記錄的資料源中的行匹配,
- Fill(DataTable)
在 DataSet 的指定范圍中添加或重繪行,以與使用 DataTable 名稱的資料源中的行匹配,
- Fill(DataSet, String)
在 DataSet 中添加或重繪行以匹配使用 DataSet 和 DataTable 名稱的資料源中的行,
- Fill(DataSet)
在 DataSet 中添加或重繪行,
- Fill(DataTable, IDbCommand, CommandBehavior)
在 DataTable 中添加或重繪行,以與使用指定的 DataTable、IDbCommand 和 CommandBehavior 的資料源中的行匹配,
說明(以示例中的呼叫方法為例)
da.Fill(ds)操作是將行添加到 DataTable 中的目標物件 DataSet ,也就是ds,并創建 DataTable 物件(如果它們尚不存在),
四、參考博文和鏈接
https://www.cnblogs.com/nanyang0310/p/9115338.html
https://dev.mysql.com/doc/dev/connector-net/8.0/html/connector-net-reference.htm
https://docs.microsoft.com/zh-cn/dotnet/api/system.data.idataadapter.fill?view=net-5.0#System_Data_IDataAdapter_Fill_System_Data_DataSet_
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/260893.html
標籤:其他
