c#連接MySql數據庫的方法

創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站制作、做網站、鞏留網絡推廣、小程序開發、鞏留網絡營銷、鞏留企業策劃、鞏留品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯為所有大學生創業者提供鞏留建站搭建服務,24小時服務熱線:028-86922220,官方網址:www.yijiale78.com
一、用MySQLDriverCS連接MySQL數據庫。
先下載和安裝MySQLDriverCS,在安裝文件夾下面找到MySQLDriver.dll,然后將MySQLDriver.dll添加引用到項目中。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySQLDriverCS;
namespace jxkh
{
public partial class frmLogin : Form
{
public frmLogin()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
MySQLConnectionString tConnStr = new MySQLConnectionString("10.14.55.46", "performance", "administrator", "1234567@byd", 3306);
MySQLConnection tConn = new MySQLConnection(tConnStr.AsString);
try
{
tConn.Open(); //打開連接
MySQLCommand cmd4 = new MySQLCommand("set names gb2312", tConn);
cmd4.ExecuteNonQuery();
string tCmd = "select ID,Name,PassWord from managers"; //命令語句
MySQLCommand cmd = new MySQLCommand(tCmd,tConn); //在定義的tConn對象上執行查詢命令
MySQLDataReader tReader = cmd.ExecuteReaderEx();
if(tReader.Read()) // 一次讀一條記錄
{
if(tReader["Name"].ToString()==textBox1.TexttReader["PassWord"].ToString()==textBox2.Text)
{
frmJxkh myJxkh = new frmJxkh();
myJxkh.Show();
}
}
tConn.Close();//重要!要及時關閉
tReader.Close();
}
catch
{
tConn.Close();
}
}
}
}
二、通過ODBC訪問mysql數據庫:
1. 安裝Microsoft ODBC.net;
2. 安裝MDAC 2.7或者更高版本;
3. 安裝MySQL的ODBC驅動程序;
4. 管理工具 - 數據源ODBC –配置DSN…;
5. 解決方案管理中添加引用 Microsoft.Data.Odbc.dll(1.0.3300);
6. 代碼中增加引用 using Microsoft.Data.Odbc;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq; //vs2005好像沒有這個命名空間,在c#2008下測試自動生成的
using System.Text;
using System.Windows.Forms;
using Microsoft.Data.Odbc;
namespace mysql
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
"SERVER=localhost;" +
"DATABASE=inv;" +
"UID=root;" +
"PASSWORD=831025;" +
"OPTION=3";
OdbcConnection MyConnection = new OdbcConnection(MyConString);
MyConnection.Open();
Console.WriteLine(""n success, connected successfully !"n");
string query = "insert into test values( 'hello', 'lucas', 'liu')";
OdbcCommand cmd = new OdbcCommand(query, MyConnection);
//處理異常:插入重復記錄有異常
try{
cmd.ExecuteNonQuery();
}
catch(Exception ex){
Console.WriteLine("record duplicate.");
}finally{
cmd.Dispose();
}
//***********************用read方法讀數據到textbox**********************
string tmp1 = null;
string tmp2 = null;
string tmp3 = null;
query = "select * from test ";
OdbcCommand cmd2 = new OdbcCommand(query, MyConnection);
OdbcDataReader reader = cmd2.ExecuteReader();
while (reader.Read())
{
tmp1 = reader[0].ToString();
tmp2 = reader[1].ToString();
tmp3 = reader[2].ToString();
}
this.textBox1.Text = tmp1 + " " + tmp2 + " " + tmp3;
*/
//************************用datagridview控件顯示數據表**************************
string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
"SERVER=localhost;" +
"DATABASE=inv;" +
"UID=root;" +
"PASSWORD=831025;" +
"OPTION=3";
OdbcConnection MyConnection = new OdbcConnection(MyConString);
OdbcDataAdapter oda = new OdbcDataAdapter("select * from customer ", MyConnection);
DataSet ds = new DataSet();
oda.Fill(ds, "employee");
this.dataGridView1.DataSource = ds.Tables["employee"];
*/
MyConnection.Close();
}
}
}
Where查詢條件,on內外連接時候用,as作為別名,in查詢某值是否在某條件里
為了使用簡單,我做了一個簡單的包裝類(包含一個數據結構):
package com.easily.ds
{
public class DataBaseData
{
public var host:String;
public var port:int;
public var username:String;
public var password:String;
public var database:String;
}
}
package com.easily.util
{
import com.easily.ds.DataBaseData;
import com.maclema.mysql.Connection;
import com.maclema.mysql.Field;
import com.maclema.mysql.MySqlResponse;
import com.maclema.mysql.MySqlToken;
import com.maclema.mysql.ResultSet;
import com.maclema.mysql.Statement;
import flash.events.Event;
import flash.events.EventDispatcher;
import mx.rpc.AsyncResponder;
/**
* @author Easily
*/
public class DataBase extends EventDispatcher
{
private var mDataBase:DataBaseData;
private var mConnection:Connection;
public function DataBase(database:DataBaseData)
{
mDataBase = database;
}
public function connect():void
{
mConnection = new Connection(mDataBase.host, mDataBase.port,
mDataBase.username, mDataBase.password, mDataBase.database);
mConnection.addEventListener(Event.CONNECT, onConnected);
mConnection.connect();
function onConnected(event:Event):void
{
mConnection.removeEventListener(Event.CONNECT, onConnected);
dispatchEvent(event);
}
}
public function disconnect():void
{
mConnection.disconnect();
}
public function select(sql:String, completeHandler:Function, errorHandler:Function = null):void
{
var st:Statement = mConnection.createStatement();
var token:MySqlToken = st.executeQuery(sql);
var responder:AsyncResponder = new AsyncResponder(resultHandler, faultHandler, token);
token.addResponder(responder);
function resultHandler(result:Object/*ResultSet*/, token:Object/*MySqlToken*/):void
{
var data:Array = [];
if (result is ResultSet)
{
var fieldList:Array = result.getColumns();
while (result.next())
{
var item:Object = {};
for each (var field:Field in fieldList)
{
item[field.getName()] = result.getString(field.getName());
}
data.push(item);
}
}
completeHandler(data);
}
function faultHandler(info:Object, token:Object):void
{
if (errorHandler == null) return;
errorHandler();
}
}
public function insert(sql:String, completeHandler:Function, errorHandler:Function = null):void
{
var st:Statement = mConnection.createStatement();
var token:MySqlToken = st.executeQuery(sql);
var responder:AsyncResponder = new AsyncResponder(resultHandler, faultHandler, token);
token.addResponder(responder);
function resultHandler(result:Object/*MySqlResponse*/, token:Object/*MySqlToken*/):void
{
completeHandler(result.insertID);
}
function faultHandler(info:Object, token:Object):void
{
if (errorHandler == null) return;
errorHandler();
}
}
public function remove(sql:String, completeHandler:Function, errorHandler:Function = null):void
{
var st:Statement = mConnection.createStatement();
var token:MySqlToken = st.executeQuery(sql);
var responder:AsyncResponder = new AsyncResponder(resultHandler, faultHandler, token);
token.addResponder(responder);
function resultHandler(result:Object/*MySqlResponse*/, token:Object/*MySqlToken*/):void
{
completeHandler();
}
function faultHandler(info:Object, token:Object):void
{
if (errorHandler == null) return;
errorHandler();
}
}
}
}
其中有3個方法,select,insert,remove,分別對應了SQL語句中的select,insert,delete
用法很簡單,先連接:
var databaseData:DataBaseData = new DataBaseData();
databaseData.host = "127.0.0.1";
databaseData.database = "game";
databaseData.password = "123456";
databaseData.port = 3306;
databaseData.username = "root";
var dataBase:DataBase = new DataBase(databaseData);
dataBase.addEventListener(Event.CONNECT, onConnected);
dataBase.connect();
function onConnected(event:Event):void
{
dataBase.removeEventListener(Event.CONNECT, onConnected);
dispatchEvent(new Event(Event.COMPLETE));
}
如果不需要用了可以先斷開連接:
dataBase.disconnect();
下面是select語句:
var sql:String = "select id,name from `npc`";
dataBase.select(sql, endQuery);
function endQuery(data:Array):void
{
var npcList:Array= [];
for each (var item:Object in data)
{
var npc:Object = {id:item.id, name:item.name};
npcList.push(npc);
}
}
insert語句用法會返回一個insertID,也就是插入的那條數據的ID。
1.打開IDEA,新建一個Web項目,右鍵點擊新建的項目名,選擇創建文件目錄(Directory),一般properties文件夾命名應為resoures。
2.右鍵點擊新建的resources文件夾,彈出的窗口里選擇Mark Dictory as Resources Root將文件夾定義為配置文件。
3.也可以通過Ctrl+shift+alt+s組合件打開Project Structure面板將需要的文件夾聲明為配置文件類型。
(選擇文件夾,再點擊Mark as:欄里的功能項,就能將文件夾聲明為相應的類型)
最后點擊OK 完成。
4.右鍵點擊聲明為resources類型的文件夾選擇Resource Bundle,就能創架一個properties文件了。
5.mysql 的properties配置文件是以鍵值對形式存讀取的,一個對象占用一行,行末不能添加分號。
6.配置文件的使用。
7.以上就是IDEA使用properties配置文件進行mysql數據庫連接的方法。
分享文章:as怎么連接mysql as使用教程
標題來源:http://www.yijiale78.com/article48/hhiiep.html
成都網站建設公司_創新互聯,為您提供、網站維護、小程序開發、全網營銷推廣、網站設計、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯