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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取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

    文章

    63

    瀏覽量

    38550
  • MySQL
    +關注

    關注

    1

    文章

    840

    瀏覽量

    27327
  • 插件
    +關注

    關注

    0

    文章

    339

    瀏覽量

    22896
收藏 0人收藏

    評論

    相關推薦

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

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

    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 ?6381次閱讀
    用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 ?1030次閱讀
    如何<b class='flag-5'>連接</b><b class='flag-5'>Mysql</b><b class='flag-5'>數據庫</b>
    主站蜘蛛池模板: 国产黄片毛片 | 精品一区二区三区免费毛片 | 免费视频网站嗯啊轻点 | 2021久久99国产熟女人妻 | 免费视频xxx | 一个人免费观看HD完整版 | 日本撒尿特写 | 嫩草影院久久99 | 色婷婷五月综合中文字幕 | 免费观看99热只有精品 | 友田真希息与子中文字幕 | 国产成a人片在线观看视频99 | 东京热无码中文字幕av专区 | 506070老熟肥妇bbwxx视频 4虎最新网址 | 猪蜜蜜网站在线观看电视剧 | 国产精品一区二区免费 | 日本熟妇多毛XXXXX视频 | 草b是什么感觉 | 午夜性伦鲁啊鲁免费视频 | 少爷被多个暗卫肉高h | A国产一区二区免费入口 | 亚洲爆乳无码精品AAA片蜜桃 | 色综合伊人色综合网站下载 | 99久久精品国产亚洲AV | 国产精品v欧美精品v日韩 | 无码国产色欲XXXX视频 | 午夜男女爽爽羞羞影院在线观看 | 91精品国产品国语在线不卡 | 中文无码乱人伦中文视频播放 | 国产一区免费在线观看 | 7723手机游戏破解版下载 | 亚洲欧洲日韩视频在钱 | 国产精品视频人人做人人爽 | 99热久久视频只有精品6 | 羽月希被黑人吃奶dasd585 | 郭德纲于谦2012最新相声 | 好男人在线观看视频观看高清视频免费 | 十分钟免费看完整视频 | 91免费永久在线地址 | 把手戳进美女尿口里动态图 | 国产精品点击进入在线影院高清 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品