一、開始需要先將C#中與mysql相關的引用添加進來
using MySql.Data.MySqlClient;
二、創建一個database
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True"); m_conn.Open(); MySqlCommand cmd = new MySqlCommand("CREATE DATABASE TEST", m_conn); cmd.CommandTimeout = 12000; cmd.ExecuteNonQuery();
三、創建一個table
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True;database=test"); m_conn.Open(); MySqlCommand cmd = new MySqlCommand("CREATE TABLE PERSON(ID INT(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,PERSONCODE VARCHAR(255) DEFAULT NULL,PERSONNAME1 VARCHAR(255) DEFAULT NULL)", m_conn); cmd.CommandTimeout = 12000; cmd.ExecuteNonQuery();
四、連接mysql,創建一個連接對象,接着開其啟對象
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True;database=test");//創建mysql的連接對象 m_conn.Open();//開啟連接
五、查詢
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True;database=test"); m_conn.Open(); DataTable dt = new DataTable("ds"); DataSet ds = new DataSet(); //創建一個數據集來存放查詢的返回結果 MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM TEST.PERSON", m_conn); //創建一個數據適配器來查找數據 da.SelectCommand.CommandTimeout = 12000; da.Fill(ds, "ds"); //將查詢到的數據填充到數據集dataset中, dt=ds.Tables[0];
六、插入
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True;database=test"); m_conn.Open();
MySqlCommand cmd = new MySqlCommand("INSERT INTO test.person(personcode,personname1) values('123456','測試老王')", m_conn); cmd.CommandTimeout = 12000; int iRecordAffected = cmd.ExecuteNonQuery();//返回插入了幾條數據
七、更新
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True;database=test"); m_conn.Open(); MySqlCommand cmd = new MySqlCommand("update test.person set personname1='測試王二麻子' where personcode='123456'", m_conn); cmd.CommandTimeout = 12000; int iRecordAffected = cmd.ExecuteNonQuery();//返回更新了幾條數據
八、刪除
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True;database=test"); m_conn.Open(); MySqlCommand cmd = new MySqlCommand("delete from test.person where personname1='測試王二麻子' and personcode='123456'", m_conn); cmd.CommandTimeout = 12000; int iRecordAffected = cmd.ExecuteNonQuery();//返回刪除了幾條數據
九、事務查詢
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True;database=test"); m_conn.Open(); MySqlTransaction m_trans = m_conn.BeginTransaction(); DataTable dt = new DataTable("ds"); DataSet ds = new DataSet(); if (m_trans != null) { MySqlDataAdapter mda = new MySqlDataAdapter("SELECT personname1 FROM person", m_conn); mda.SelectCommand.CommandTimeout = 12000; mda.Fill(ds, "ds"); if (ds.Tables.Count > 0) { dt = ds.Tables[0]; }
m_trans.Commit(); //事務結束的標志就是調用事務的提交方法commit() }
十、事務插入,事務更新,事務刪除除了SQL語句不同其余都一樣
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True;database=test"); m_conn.Open(); MySqlCommand cmd = new MySqlCommand("INSERT INTO person(personcode,personname1) values('123456','測試老王')", m_conn); MySqlTransaction m_trans = m_conn.BeginTransaction(); cmd.Transaction = m_trans; cmd.CommandTimeout = 12000; if (m_trans != null) { int iRecordAffected = cmd.ExecuteNonQuery();
m_trans.Commit(); //事務結束的標志就是調用事務的提交方法commit() }
十一、事務回滾
MySqlConnection m_conn = new MySqlConnection("server=localhost;user id=root;password=root;persist security info=True;database=test"); m_conn.Open(); MySqlCommand cmd = new MySqlCommand("INSERT INTO person(personcode,personname1) values('123456','測試老王')", m_conn); MySqlTransaction m_trans = m_conn.BeginTransaction(); cmd.Transaction = m_trans; cmd.CommandTimeout = 12000; if (m_trans != null) { int iRecordAffected = cmd.ExecuteNonQuery();
m_trans.Rollback(); //在事務提交之前調用事務的回滾方法,可以返回到事務開始前的數據庫狀態,相當於此次事務內對數據庫的操作無效。 }