首先去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();
}
分享到:
2008-11-02 10:35
浏览 504
评论