1、mysql官網(wǎng)下載 .net連接器
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)太谷,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
2、引用下載后的mysql.data.dll
3、程序開始加:using MySql.Data.MySqlClient;
4、連接數(shù)據(jù)庫:
private void button1_Click(object sender, EventArgs e)//登入按鈕
{
string power = comboBox1.Text.Trim();
string user = textBox1.Text.Trim();
string psd = textBox2.Text.Trim();
string ipaddress = "";
string mysqluser = "";
string mysqlpsd = "";
if (user == "")
{
MessageBox.Show("請輸入用戶名");
}
else if (psd == "")
{
MessageBox.Show("請輸入密碼");
}
else
{
try
{
try
{
string[] getconfig = File.ReadAllLines("E:/project/configure.txt", Encoding.GetEncoding("gb2312"));
ipaddress = getconfig[0].Split(':')[1];//讀取ip地址
mysqluser = getconfig[1].Split(':')[1];//讀取數(shù)據(jù)庫賬號
mysqlpsd = getconfig[2].Split(':')[1]; //讀取數(shù)據(jù)庫密碼
}
catch (Exception)
{
MessageBox.Show("配置文件丟失");
return;
}
string query = "SET names gb2312;SELECT COUNT(id) FROM fx_user WHERE name='" + user + "' AND password=MD5('" + psd + "') AND userid='" + power + "'";
MySqlConnection cn = new MySqlConnection("server=" + ipaddress + ";user id=" + mysqluser + ";Password=" + mysqlpsd + ";database=system;charset=gb2312");
cn.Open();
MySqlCommand cm = new MySqlCommand(query, cn);
MySqlDataReader read = cm.ExecuteReader(); //搜索滿足 用戶名,密碼,操作員的記錄。
//如果記錄沒有--密碼或用戶名錯誤
if (read.Read()) //如果記錄多余1條--數(shù)據(jù)錯誤,聯(lián)系管理員
{ //只有一條記錄則成功登入
int x = Int32.Parse(read[0].ToString());
if (x == 0)
{
MessageBox.Show("用戶名或密碼錯誤");
}
else if (x 1)
{
MessageBox.Show("用戶沖突,請聯(lián)系管理員");
}
else if (x == 1)
{
// MessageBox.Show("登入成功");
main mf = new main(power, ipaddress, mysqluser, mysqlpsd); //將操作員 和 IP地址傳入 主窗體
mf.Show();
this.Hide();
cn.Close();
}
}
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("數(shù)據(jù)庫連接失敗1");
break;
case 1045:
MessageBox.Show("數(shù)據(jù)庫密碼或用戶名錯誤");
break;
default:
MessageBox.Show("數(shù)據(jù)庫連接失敗2");
break;
}
}
}
}
查詢方法如下:
例:%:表示任意0個或多個字符??善ヅ淙我忸愋秃烷L度的字符,有些情況下若是中文,請使用兩個百分號(%%)表示。比如SELECT*FROM[user]WHEREu_nameLIKE'%三%。將會把u_name為“張三”,“張貓三”、“三腳貓”,“唐三藏”等等有“三”的記錄全找出來。
另外,如果需要找出u_name中既有“三”又有“貓”的記錄,請使用and條件SELECT*FROM[user]WHEREu_nameLIKE'%三%'ANDu_nameLIKE'%貓%'若使用SELECT*FROM[user]WHEREu_nameLIKE'%三%貓%'雖然能搜索出“三腳貓”,但不能搜索出符合條件的“張貓三”。
1、首先單引號和反引號,如圖,這里的? ?'圖書ID'? ?就使用到了單引號,而 CREATE TABLE `book`? 這里的? book? 就使用到了反引號。
2、單引號:在例子中的條件值周圍使用的是單引號。SQL 使用單引號來環(huán)繞文本值。如果是數(shù)值,不要使用引號。
3、反引號:它是為了區(qū)分MYSQL的保留字與普通字符而引入的符號。有MYSQL保留字作為字段的,必須加上反引號來區(qū)分。
4、雙引號的用法和單引號有所類似,大多數(shù)數(shù)據(jù)庫都支持單引號和雙引號的互換,即varchar類型的變量既可以用單引號來囊括,也可以用雙引號。
5、另外,在oracle里面,雙引號還有一個意義,那就是保留大小寫。在oracle數(shù)據(jù)庫里面,所有的字段是默認(rèn)為轉(zhuǎn)化成大寫后進(jìn)數(shù)據(jù)庫的,所以如果有一個表名為user,這個時候select * from user;這個語句是查不出任何數(shù)據(jù)的。
可以使用mysql推出的mysqlconnector/net組件,該組件是mysql為ado.net訪問mysql數(shù)據(jù)庫設(shè)計(jì)的.net專用訪問組件,完成該組件后,需要在項(xiàng)目中引用這個組件,之后在程序中引用命名空間mysql.data.mysqlclient,即可開始進(jìn)行連接mysql數(shù)據(jù)庫的操作了,示例如下:
protected
voidmysqlcon()
{
//數(shù)據(jù)庫連接字符串跟連接sqlserver沒有區(qū)別
string
constr
=
"server=localhost;userid=root;password=root;database=test";
//下面使用mysql
connector/net提供的專用對象
mysqlconnection
mycon
=
new
mysqlconnection(constr);
mycon.open();
mysqlcommandmycmd
=
new
mysqlcommand("select
*
from
users",
mycon);
mysqldatareader
myreader
=
mycmd.executereader();
while
(myreader.read())
{
if
(myreader.hasrows)
{
messagebox.show(myreader.getstring("email")
);
}
}
myreader.close();
mycon.close();