1、mysql官网下载 .net连接器
成都创新互联主要从事成都网站设计、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务太谷,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
2、引用下载后的mysql.data.dll
3、程序开始加:using MySql.Data.MySqlClient;
4、连接数据库:
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];//读取数据库账号
mysqlpsd = getconfig[2].Split(':')[1]; //读取数据库密码
}
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条--数据错误,联系管理员
{ //只有一条记录则成功登入
int x = Int32.Parse(read[0].ToString());
if (x == 0)
{
MessageBox.Show("用户名或密码错误");
}
else if (x 1)
{
MessageBox.Show("用户冲突,请联系管理员");
}
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("数据库连接失败1");
break;
case 1045:
MessageBox.Show("数据库密码或用户名错误");
break;
default:
MessageBox.Show("数据库连接失败2");
break;
}
}
}
}
查询方法如下:
例:%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。比如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 使用单引号来环绕文本值。如果是数值,不要使用引号。
3、反引号:它是为了区分MYSQL的保留字与普通字符而引入的符号。有MYSQL保留字作为字段的,必须加上反引号来区分。
4、双引号的用法和单引号有所类似,大多数数据库都支持单引号和双引号的互换,即varchar类型的变量既可以用单引号来囊括,也可以用双引号。
5、另外,在oracle里面,双引号还有一个意义,那就是保留大小写。在oracle数据库里面,所有的字段是默认为转化成大写后进数据库的,所以如果有一个表名为user,这个时候select * from user;这个语句是查不出任何数据的。
可以使用mysql推出的mysqlconnector/net组件,该组件是mysql为ado.net访问mysql数据库设计的.net专用访问组件,完成该组件后,需要在项目中引用这个组件,之后在程序中引用命名空间mysql.data.mysqlclient,即可开始进行连接mysql数据库的操作了,示例如下:
protected
voidmysqlcon()
{
//数据库连接字符串跟连接sqlserver没有区别
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();