如何在.net中使用mysql数据库

如何在.net中使用mysql数据库,第1张

1、mysql官网下载 .net连接器

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10056950.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存