色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

連接Mysql數據庫

汽車電子技術 ? 來源:程序猿知秋 ? 作者:程序猿知秋 ? 2023-02-28 09:50 ? 次閱讀

圖片

依賴插件

**MySql.Data安裝 **

  • 使用之前需要先在 vs中安裝MySql.Data 插件,本文采用 Nuget 方式安裝 ,步驟如下:
    • **選中項目右鍵——》管理Nuget程序包 **
    • 輸入 MySql.Data ,搜索安裝即可

圖片編輯

連接數據庫的基本對象介紹

  • MySqlConnection: 數據庫連接對象
  • MySqlCommand: sql語句執行對象
  • MySqlDataReader:包含sql語句執?的結果,并提供?個?法從結果中閱讀??
  • MySqlTransaction: sql事務管理對象
  • MySqlException: 報錯時返回的Exception。
  • MySqlCommandBuilder:自動生成命令,該命令用于MySQL數據庫協調對數據集所做的更改
  • MySqlDataAdapter: 表示一組數據命令和數據庫連接,用于填充數據集和更新MySQL數據庫
  • MySqlHelper:提供幫助的工具類

sql執行方法

  • ExcuteNonQuery 執行【insert(增)】、【updata(改)】、【delete(刪)】語句
  • ExcuteReader 執行多行查詢,返回DataReader對象
  • ExcuteScalar 執行單行查詢,返回查詢結果的首行數據

DataTable和DataSet 容器

  • 可以把DataTable和DataSet看做是數據容器,比如你查詢數據庫后得到一些結果,可以放到這種容器里
  • **DataSet **可以比作一個內存中的數據庫
  • **DataTable **是一個內存中的數據表
  • DataSet 里可以存儲多個DataTable
  • 數據結果 直接放到 dataTable中
DataTable dt = new DataTable();
MySqlDataAdapter DataAdapter = new MySqlDataAdapter(sql, conn);
// 將數據填充到dataTable中
DataAdapter.Fill(dt);
  • 數據結果 直接放到 dateSet 中
DataSet ds = new DataSet();
MySqlDataAdapter DataAdapter = new MySqlDataAdapter(sql, conn);
// 將數據填充到dataSet中
DataAdapter.Fill(ds);
  • ****數據結果放到dataset中,若要用那個datatable,可以這樣:dataset[0] ****
DataSet ds = new DataSet();
MySqlDataAdapter DataAdapter = new MySqlDataAdapter(sql, conn);
// 將數據填充到dataSet中
DataAdapter.Fill(ds);
DataTable td = ds.Tables[0]

Mysql的增刪改查(CRUD)

創建Mysql連接

  • 方式一: 通過 MySqlConnectionStringBuilder 對象
public MySqlConnection createConnect()
{
  // 數據連接的基本信息對象
  MySqlConnectionStringBuilder scsb = new MySqlConnectionStringBuilder();
  scsb.UserID = "root";
  scsb.Server = "127.0.0.1";
  scsb.Port = 3306;
  scsb.Password = "123456";
  scsb.Database = "account_center";


  MySqlConnection mySqlConnection = new MySqlConnection(scsb.ConnectionString);


  mySqlConnection.Open();
  Console.WriteLine("數據庫連接成功!");
  return mySqlConnection;
}
  • 方式二: 直接通過字符串,然后new MySqlConnection
public MySqlConnection createConnect2()
{
  // 數據連接的基本信息對象
  string conStr = "server=127.0.0.1;database=account_center;username=root;password=123456;";
  MySqlConnection mySqlConnection = new MySqlConnection(conStr);
  mySqlConnection.Open();
  return mySqlConnection;
}

MySqlDataAdapter 方式

查詢數據表數據(無參數)

public void queryNoArg(MySqlConnection conn)
{
  string sql = "select * from user_test ";
  DataTable dt = new DataTable();
  try
  {
    MySqlDataAdapter DataAdapter = new MySqlDataAdapter(sql, conn);
    // 將數據填充到dataTable中
    DataAdapter.Fill(dt);
  }
  catch (Exception ex)
  {
    Console.WriteLine(ex.Message);
  }
  finally
  {
    // 關閉連接
    conn.Close();
  }


  // 打印表數據
  printData(dt);
}

打印數據方法

public void printData(DataTable dt)
{
  if (dt.Rows.Count < 0)
  {
    return;
  }


  //打印所有列名
  string columnName = string.Empty;
  for (int i = 0; i < dt.Columns.Count; i++)
  {
    columnName += dt.Columns[i].ColumnName + " | ";
  }
  Console.WriteLine(columnName);
  Console.WriteLine("-------------------------");


  //打印每一行的數據
  foreach (DataRow row in dt.Rows)
  {
    string columnStr = string.Empty;
    foreach (DataColumn column in dt.Columns)
    {
      columnStr += row[column] + " | ";
    }
    Console.WriteLine(columnStr);
  }
}

輸出結果

name | age | create_date |
-------------------------
張三 | 12 | 2023/1/4 17:17:24 |
李四 | 33 | 2023/1/4 17:17:24 |

查詢數據表數據(帶參數

public void queryByArg(MySqlConnection conn)
{
  string sql = "select * from user_test where name=@p1 and age=@p2  ";
  DataTable dt = new DataTable();
  try
  {
    // 建立命令執行對象
    MySqlCommand cmd = new MySqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = sql;
    // 設置命令的類型,普通的sql命令是字符串的用Text即可 ,如果是存儲過程則用 CommandType.StoredProcedure
    cmd.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@p1", "張三");
    cmd.Parameters.AddWithValue("@p2", 12);


    MySqlDataAdapter DataAdapter = new MySqlDataAdapter(cmd);
    // 將數據填充到dataTable中
    DataAdapter.Fill(dt);
    // 釋放資源
    DataAdapter.Dispose();
  }
  catch (Exception ex)
  {
    Console.WriteLine(ex.Message);
  }
  finally
  {
    // 關閉連接
    conn.Close();
  }


  // 打印表數據
  printData(dt);
}

輸出結果

name | age | create_date |
-------------------------
張三 | 12 | 2023/1/4 17:17:24 |

MySqlDataReader 方式

查詢數據表數據

public void ExecuteReader(MySqlConnection connection)
{
  string sql = "select * from user_test ";
  MySqlCommand cmd = new MySqlCommand(sql, connection);
  MySqlDataReader myReader = null;
  try
  {
    myReader = cmd.ExecuteReader();
    // 打印數據
    printByReader(myReader);
  }
  catch (Exception e)
  {
    throw new Exception(e.Message);
  }
  finally
  {
    connection.Close();
    cmd.Dispose();
  }
}

打印數據方法

public void printByReader(MySqlDataReader myReader)
{
  if (myReader==null)
  {
    return;
  }


  //打印所有列名
  string columnName = string.Empty;
  for (int i = 0; i < myReader.FieldCount; i++)
  {
    columnName += myReader.GetName(i) + " | ";
  }
  Console.WriteLine(columnName);
  Console.WriteLine("-------------------------");


  //打印每一行的數據
  while (myReader.Read())
  {
    string columnStr = string.Empty;
    for (int i = 0; i < myReader.FieldCount; i++)
    {
      columnStr += myReader[i].ToString() + " | ";
    }
    Console.WriteLine(columnStr);
  }
  // 釋放資源
  myReader.Close();
}

輸出結果

name | age | create_date |
-------------------------
張三 | 12 | 2023/1/4 17:17:24 |
李四 | 33 | 2023/1/4 17:17:24 |

修改表數據都用 ExecuteNonQuery() 方法

ExecuteNonQuery() 適用于 添加、修改、刪除 相關的sql操作

public int updateData(MySqlConnection conn)
{
  // 添加數據
  string addSql = "insert into user_test(name,age,create_date) values('王五',14,now())";
  // 修改數據
  string updateSql = "update user_test set age=55 where name='李四'";
  // 刪除數據
  string delSql = "delete from user_test where name = '張三'";


  MySqlCommand cmd = new MySqlCommand(addSql, conn);
  try
  {
    int rows = cmd.ExecuteNonQuery();
    return rows;
  }
  catch (Exception e)
  {
    conn.Close();
    //throw e;
    Console.WriteLine(e.Message);
  }
  finally
  {
    cmd.Dispose();
    conn.Close();
  }
  return -1;
}

數據庫事務(MySqlTransaction類)

事務執行過程:

  • 開啟
  • 提交 -- 正常
  • 回滾 -- 出現問題

**事務管理 **

  • BeginTransaction(): 開啟事務, 只要未提交,期間執行的數據更新相關的操作都不會生效
  • transaction.Commit(): 提交事務,提交后,數據更新
  • transaction.Rollback(): 回滾事務,回滾后,之前執行的數據更新操作都將失效
public void TransactionTest(MySqlConnection conn)
{
  string sql = "insert into user_test(name,age,create_date) values('bbb',224,now())";


  // 開啟事務
  MySqlTransaction transaction = conn.BeginTransaction();
  try
  {
    MySqlCommand cmd = new MySqlCommand(sql, conn);
    cmd.ExecuteNonQuery();
  }
  catch (Exception ex)
  {
    Console.WriteLine(ex.Message);
        // 事務回滾
    transaction.Rollback();
    conn.Close();
  }
  finally
  {
    if (conn.State != ConnectionState.Closed)
    {
      //事務要么回滾要么提交,即Rollback()與Commit()只執行一個
      transaction.Commit();
      conn.Close();
    }
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Data
    +關注

    關注

    0

    文章

    62

    瀏覽量

    38266
  • MySQL
    +關注

    關注

    1

    文章

    804

    瀏覽量

    26530
  • 插件
    +關注

    關注

    0

    文章

    326

    瀏覽量

    22440
收藏 人收藏

    評論

    相關推薦

    如何在Rust中連接和使用MySQL數據庫

    如何在Rust中連接和使用MySQL數據庫。 安裝 mysql 模塊 這里我們假設你已經安裝了Rust編程語言工具鏈,在本教程中,我們將使用 mys
    的頭像 發表于 09-30 17:05 ?1667次閱讀

    labview連接mysql數據庫

    =127.0.0.1;UID=root;DATABASE=mxjtest;PORT=3306";用以上語句為什么不行求解數據庫用戶root密碼100200就連自己電腦上的數據庫
    發表于 10-09 14:44

    labview 連接mysql 數據庫的問題

    `我根據網絡上的教程想用labsql 做個連接mysql的vi,但是就是連接不上數據庫。(已經新建數據源DSN)求教下,字符串 3,4 是不
    發表于 01-07 22:06

    labview連接mysql數據庫的問題

    這個ODBC數據流已經成功設置了,為什么用labview連接mysql數據庫就出現這個錯誤呢?望大神解答,謝謝啦!
    發表于 08-19 08:30

    labview連接mysql數據庫失敗,原因何在。

    `使用ODBC連接mysql時,測試連接成功;但是使用labview連接mysql時,測試連接
    發表于 11-29 17:02

    采用hqC連接mysql數據庫

    eclipse連接mysql(80)的版本問題
    發表于 04-30 10:27

    Python連接MySQL數據庫及模塊封裝

    python連接mysql與sql server數據庫及相應的模塊封裝
    發表于 05-01 16:06

    如何使用原生hqc連接MySQL數據庫

    springboot項目中使用原生hqc連接MySQL數據庫
    發表于 06-08 12:12

    c#如何連接mysql數據庫

    (visual studio)c#連接mysql數據庫
    發表于 06-13 20:56

    python如何連接MySql數據庫

    Python入門(python連接MySql數據庫)還能怎么記,大開眼界!
    發表于 06-14 07:48

    Java通過驅動包連接MySQL數據庫的步驟總結及驗證

    Java通過驅動包(jar包)連接MySQL數據庫---步驟總結及驗證
    發表于 06-15 16:57

    分享一個簡單的連接MYSQL數據庫的小功能

    LabSQL連接數據庫的小demo,供大家指正交流
    發表于 06-18 14:14

    ESP8266如何連接mysql數據庫

    各位大神,我試圖用ESP8266 連接mysql ,將溫濕度傳感器的數據,寫入數據庫mysql數據庫
    發表于 01-12 09:22

    用JDBC連接MySQL數據庫并進行簡單的增刪改查操作

    本文主要詳細講解了用JDBC連接MySQL數據庫并進行簡單的增刪改查操作。Java 數據庫連接是Java語言中用來規范客戶端程序如何來訪問
    發表于 02-06 09:21 ?6306次閱讀
    用JDBC<b class='flag-5'>連接</b><b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>并進行簡單的增刪改查操作

    如何連接Mysql數據庫

    使用之前需要先在 vs中安裝MySql.Data 插件
    的頭像 發表于 01-20 15:04 ?864次閱讀
    如何<b class='flag-5'>連接</b><b class='flag-5'>Mysql</b><b class='flag-5'>數據庫</b>
    主站蜘蛛池模板: 99久久99久久久99精品齐| 亚洲男同tv| 在线日本高清日本免费| 日本夜夜夜| 黄色一级毛片免费| 国产成人精品系列在线观看| a一级毛片视频免费看| 2023国产精品一卡2卡三卡4卡| 亚洲国产日韩欧美在线a乱码| 天美传媒麻豆精品| 色迷迷导航| 日韩精品一区二区亚洲AV观看| 日本免费一区二区三区最新vr| 女人夜夜春| 无限资源网免费看| 日本美女论坛| 日本亚欧热亚洲乱色视频| 人妻中文字幕无码久久AV爆| 欧美性猛交AAA片| 日本妈妈JMZZZZZ| 涩涩视频下载| 玄幻全黄h全肉后宫| 快播电影网站大全| 久久本道久久综合伊人| 久久亚洲AV无码精品午色夜麻豆| 久久视频在线视频| 嫩草视频在线观看免费| 秋霞网在线伦理影片| 色婷婷五月综合中文字幕| 无码人妻丰满熟妇啪啪网不卡| 亚州天堂在线视频av| 亚洲午夜精品A片久久不卡蜜桃| 伊人久久大香线蕉影院95| 91热久久免费精品99| MD传媒MD0021在线观看| 俄罗斯18xv在线观看| 国产一区二区精品视频| 九色PORNY丨视频入口| 麻豆精品一卡2卡三卡4卡免费观看 | 拔擦拔擦8X永久华人免费播放器| 最好看中文字幕国语|