
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 gb2312SELECT 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=systemcharset=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
}
}
}
}
(1)首先需要下载C#访问MySQL数据库的ADO.NET驱动程序
mysql-connector-net-6.3.8.msi
(2)安装mysql-connector-net
然后直接在Windows *** 作系统安装 mysql-connector-net-6.3.8.msi
(3)封装数据库访问组件DbConnectionMySQL
/// <summary>/// MySQL数据库
/// 版本 mysql-connector-net-6.3.8.msi
/// </summary>
[Serializable]
public class DbConnectionMySQL : DbConnectionWrapper
{
public DbConnectionMySQL(string pConnectionString)
: base(pConnectionString)
{
this.m_dbconn = new MySqlConnection(pConnectionString)
this.m_DbConnState = DbConnState.Free
}
//--
public override DbDataAdapter GetDbDataAdapter()
{
return new MySqlDataAdapter()
}
public override DbDataAdapter GetDbDataAdapter(DbCommand dbCommand)
{
return new MySqlDataAdapter(dbCommand as MySqlCommand)
}
public override DbCommand GetDbCommand()
{
return new MySqlCommand()
}
public override DbConnection GetDbConnection()
{
return new MySqlConnection()
}
public override DbCommandBuilder GetDbCommandBuilder()
{
return new MySqlCommandBuilder()
}
public override DataProviderType GetCurrentDataProviderType()
{
return DataProviderType.Sql
}
public override bool IsExistsTable(string TableName, string UserName)
{
#region information
bool rbc = false //TABLES表中去查询 table_name
string dSql = "select * from TABLES where table_name='" + TableName + "'"
DataSet ds = this.ExecuteDataSet(dSql)
if (ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
rbc = true
}
else
{
rbc = false
}
}
else
{
rbc = false
}
return rbc
#endregion
}
public override bool IsExistsField(string FieldName, string TableName)
{
#region information
bool rbc = false
string dSql = ""
dSql = "select * from " + TableName + " where 1<>1"
DataSet ds = this.ExecuteDataSet(dSql)
if (ds != null)
{
DataTable dt = ds.Tables[0]
for (int j = 0 j < dt.Columns.Count j++)
{
if (dt.Columns[j].ColumnName.ToString().ToUpper() == FieldName.ToString().ToUpper())
{
rbc = true
goto Return_End
}
}
dt.Dispose()
dt = null
}
ds.Dispose()
ds = null
Return_End:
return rbc
#endregion
}
public override char ParameterChar
{
get
{
return ':' //SQLite的参数符号为:
}
}
public override DbParameter CreateParameter(string name, object value)
{
return new MySqlParameter(name, value)
}
public override DbParameter CreateParameter(string name)
{
DbParameter dbp = new MySqlParameter()
dbp.ParameterName = name
return dbp
}
public override DbParameter CreateParameter(string name, DbType dbtype, object value)
{
DbParameter dbp = new MySqlParameter()
dbp.ParameterName = name
dbp.Value = value
dbp.DbType = dbtype
return dbp
}
public override DbParameter CreateParameter(string name, DbType dbtype, int size, object value)
{
DbParameter dbp = new MySqlParameter()
dbp.ParameterName = name
dbp.Value = value
dbp.DbType = dbtype
dbp.Size = size
return dbp
}
}
(4)客户端开发实例
public void TestCShape_MySQL(){
string constr = "server=localhostUser Id=rootpassword=rootDatabase=xp_users"
DbConnectionWrapper dbw = new DbConnectionMySQL(constr)
bool rbc=dbw.TestConnection()
this.Context.Response.Write(rbc)
string x = ""
//删除语句
x = "delete from xp_users"
if (dbw.ExecuteQuery(x) > 0)
{
this.Context.Response.Write("删除语句成功!下面是SQL语句<br>" + x)
}
//插入语句
x = "insert into xp_users(gid,uid,uname,sex,email,pwd) values('"
x += "1','hsg77','何XXX',1,'hsg77@163.com','1')"
if (dbw.ExecuteQuery(x) > 0)
{
this.Context.Response.Write("插入语句成功!下面是SQL语句<br>"+x)
}
//查询语句
DataTable dt = dbw.ExecuteDataTable("select * from xp_users")
if (dt != null && dt.Rows.Count > 0)
{
this.Context.Response.Write("<br>用户数:"+dt.Rows.Count)
}
if (dt != null)
{
dt.Dispose()
dt = null
}
dbw.Dispose()
dbw = null
}
文中实例来自一篇博客,由于百度知道对 url 地址封杀,不能直接给出链接!
直接通过数据库的用户名、密码等连接到数据库进行数据库连接。如:private void sqlconn()
{
SqlConncetion conn = new SqlConnection("SERVER=.DATABASE=pubsPWD=UID=sa")
SqlConncetion cmd = new SqlCommand("SELECT*FROM [table]",cmd)
DataSet ds = new DataSet()
SqlDataAdapter adp = new SqlDataAdapter(cmd)
adp.Fill(ds)
}
其中SqlConnection 是数据库连接类,SqlDataAdapter是数据适配器,SqlCommand是数据 *** 作命令,即执行SQL语言。
说明,使用SqlConnection进行数据库的连接,然后使用SqlCommand定义SQL查询语句,再定义一个DataSet存储查询的结果,而SqlDataAdapter是数据库和DataSet的转换桥梁。
C#连接数据库的三种方法,参考下:
http://blog.csdn.net/shadowyelling/article/details/6606973
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)