mysql与.net连接_.net与mysql连接

这篇博客介绍了如何在.NET环境中与MySQL数据库进行连接和操作。首先从MySQL官网下载非安装版及GUI客户端,然后在VS2003以上版本创建Windows Application工程,并在app.config中配置连接字符串。文章强调了与SQL Server连接字符串的区别,并指导如何添加MySql.Data.dll引用。接着展示了如何建立连接、执行查询和更新操作的代码示例,同时提到了处理DateTime错误数据的问题。最后,给出了使用DataSet和参数化SQL命令的例子。
摘要由CSDN通过智能技术生成

首先去mysql网站下载一个mysql非安装版本

如果你感觉使用dos命令行不方便的话,可以顺便也下载一个GUI客户端:

然后打开vs..这个版本必须是2003以上。

然后呢,建立一个windowsApplication工程,然后在里面的app.config

如果你想把连接字符串写在程序里的话:将下面的代码改为stringstrConn=“server=localhost;userid=root;password=;database=test;allowzerodatetime=true;”

这里与sqlserver连接字符串相区别的是:

user->user id,

当然估计没有下载MySql.Data.dll所以在

然后在net工程里添加引用,找到刚才你下载MySql.Data.dll的压缩包,解压后,在bin目录下有MySql.Data.dll.

添加成功后,在你的代码里添加一个

using MySql.Data.MySqlClient;

然后下面的和SqlClient的效果是一样的。只不过前面多了"My"

下面看具体的代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

usingSystem.Data;

usingMySql.Data.MySqlClient;

namespaceSqlConnect

{

///

///author:chicochen

///date:2008-11-02

///

publicclassSqlAccess

{

privateMySqlConnectionconn=null;

privateMySqlCommandcmd=null;

///

///建立与数据库的连接

///

///

privateMySqlConnectionCreateConn()

{

stringstrConn=System.Configuration.ConfigurationSettings.AppSettings["Restaurant"].ToString();

//SqlConnection对象

conn=newMySqlConnection(strConn);

try

{

conn.Open();

returnconn;

}

catch(Exceptione)

{

Console.WriteLine("sql连接未打开");

returnnull;

}

}

///

///关闭与数据库的连接

///

privatevoidCloseConn()

{

try

{

conn.Close();

}

catch(Exceptione)

{

Console.WriteLine("sql连接未关闭");

}

}

///

///查询数据库

///

///类似于SELECT*FROM[User];

///

publicDataSetSelectDataSet(stringsql)

{

CreateConn();

MySqlDataAdaptersda=newMySqlDataAdapter(sql,conn);

DataSetds=newDataSet();

sda.Fill(ds);

CloseConn();

returnds;

}

///

///执行无返回值的sql语句,如果成功返回true,失败返回false;

///

///类似于UPDATE[USER]SETuserID=@userIDCWHEREuserID=@userID

///或deletefrom[user]whereuserID=@userID;

///或者insertinto[user](userID,password,name)values(@userID,@password,@Name);

///

///SqlParameter[]sp=newSqlParameter[3];

///sp[0]=newSqlParameter(user,SqlDbType.VarChar,50);

///sp[0].Value="www";

///

///

publicboolEXESql(stringsqlcmd,MySqlParameter[]sqlPara)

{

try

{

CreateConn();

cmd=newMySqlCommand();

cmd.Connection=conn;

cmd.CommandType=CommandType.Text;

cmd.CommandText=sqlcmd;

foreach(MySqlParameterspinsqlPara)

{

cmd.Parameters.Add(sp);

}

cmd.ExecuteNonQuery();

CloseConn();

returntrue;

}

catch(Exceptione)

{

returnfalse;

}

}

}

}

这里调用的代码这样写:

DataSet ds = sqlAccess.SelectDataSet("select * from user");

当然如果你使用DataSet还要加using System.Data;

连接字符串中为什么要加Allow Zero datetime = true是因为在添加数据库数据时,

添加了错误的dateTime数据,所以mysql自动将其转为0000-00-00 00:00:00,所以在

DataSet ds = new DataSet();

sda.Fill(ds);

这里就会报异常,原因是不支持这种Date/Time。

要使用刚才的接口的话:

{

DataSetds=sqlAccess.SelectDataSet("select*fromuser");

Arrayalist=ds.Tables[0].Rows[0].ItemArray;

foreach(objectoinalist)

{

label1.Text+=o.ToString();

}

UpdateName();

}

privateconststringsql="UPDATEUSERSETuserName=@userNameWHEREuserID=@userID";

privateconststringuserName="@userName";

privateconststringuserID="@userID";

privatevoidUpdateName()

{

inti=1;

stringname="xxxx";

MySqlParameter[]my=

{

newMySqlParameter(userName,MySqlDbType.String),

newMySqlParameter(userID,MySqlDbType.Int32)

};

my[0].Value=name;

my[1].Value=i;

label2.Text=sqlAccess.EXESql(sql,my).ToString();

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2008-11-02 10:35

浏览 504

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值