unity鏈接MySQL數據庫學習(一)前置知識點介紹

備註html

1.如下出現的代碼字段爲C#語法格式mysql

2.持續更新ingsql

 

須要引用的命名空間數據庫

using MySql.Data.MySqlClient;

1、MySqlConnectionapi

示例的使用方法spa

 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的用法能夠看這篇博文http://www.javashuo.com/article/p-mjrinhag-vd.html命令行

 

2、MySqlCommandcode

示例的使用方法orm

 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的四種初始化方法htm

  • 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

3、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 對象(若是它們尚不存在)。 

 

4、參考博文和連接

http://www.javashuo.com/article/p-tbeeyrdu-vd.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_

相關文章
相關標籤/搜索