返回顶部

unity连接MySQL数据库学习(一)前置知识点介绍

备注

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_

 

posted @ 2021-02-18 14:37  Emiya_EX  阅读(439)  评论(0编辑  收藏  举报