c#怎么连接数据库 用MySQL 详解

c#怎么连接数据库 用MySQL 详解,第1张

1、mysql官网下载 net连接器

2、引用下载后的mysqldatadll

3、程序开始加:using MySqlDataMySqlClient;

4、连接数据库:

  private void button1_Click(object sender, EventArgs e)//登入按钮

        {

            string power = comboBox1TextTrim();

            string user = textBox1TextTrim();

            string psd = textBox2TextTrim();

            string ipaddress = "";

            string mysqluser = "";

            string mysqlpsd = "";

            if (user == "")

            {

                MessageBoxShow("请输入用户名");

            }

            else if (psd == "")

            {

                MessageBoxShow("请输入密码");

            }

            else

            {

                try

                {

                    try

                    {

                        string[] getconfig = FileReadAllLines("E:/project/configuretxt", EncodingGetEncoding("gb2312"));

                        ipaddress = getconfig[0]Split(':')[1];//读取ip地址

                        mysqluser = getconfig[1]Split(':')[1];//读取数据库账号

                        mysqlpsd = getconfig[2]Split(':')[1]; //读取数据库密码       

                    }

                    catch (Exception)

                    {

                        MessageBoxShow("配置文件丢失");

                        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");

                 

                cnOpen();

                    MySqlCommand cm = new MySqlCommand(query, cn);

                    MySqlDataReader read = cmExecuteReader();      //搜索满足 用户名,密码, *** 作员的记录。

                    //如果记录没有-->密码或用户名错误

                    if (readRead())                                //如果记录多余1条-->数据错误,联系管理员

                    {                                               //只有一条记录则成功登入

                        int x = Int32Parse(read[0]ToString());

                        if (x == 0)

                        {

                            MessageBoxShow("用户名或密码错误");

                        }

                        else if (x > 1)

                        {

                            MessageBoxShow("用户冲突,请联系管理员");

                        }

                        else if (x == 1)

                        {

                            //  MessageBoxShow("登入成功");

                            main mf = new main(power, ipaddress, mysqluser, mysqlpsd);   //将 *** 作员 和 IP地址传入 主窗体 

                            mfShow();

                            thisHide();

                            cnClose();

                        }

                    }

                }

                catch (MySqlDataMySqlClientMySqlException ex)

                {

                    switch (exNumber)

                    {

                        case 0:

                            MessageBoxShow("数据库连接失败1");

                            break;

                        case 1045:

                            MessageBoxShow("数据库密码或用户名错误");

                            break;

                        default:

                            MessageBoxShow("数据库连接失败2");

                            break;

                    }

                }

            }

        }

您如果想要判断类型的话,可以进行转换 比如

select to_char(name) from table_name; ---这样就把您想要的数据NAME列转换为字符型;

select to_num(name) from table_name; ---这样就把您想要的数据NAME列转换为数字型;

您所说的自动判断 貌似没有

处理“我想查 IF中同时满足这两个条件的总数”

我的理解是:

SELECT COUNT() FROM tougao_record WHERE accept_company_id=100 AND channel_type=1 AND check_status=6

下面是if语句里面多个条件的使用。

IF语句的标准形式IF(expr1,expr2,expr3)

expr1可以是单个表达式也可以是多个表达式,且&&,或||,非!

上面的语句可以这样写

select COUNT(IF(channel_type=1 && check_status=6),1,0) FROM tougao_record WHERE accept_company_id=100

但是就我的理解,mysql在统计count的时候,不管count括号里面的内容,只管是否为空,查询的结果不为空就计数。

我是处理下面的问题用到了,可以直接跑一下我给的sql语句。

SET @destval:='063';

SET @valforcomp='062';

SELECT 

IF(@destval REGEXP '^[\-\+]([0-9]+)$' && @valforcomp REGEXP '^[\-\+]([0-9]+)$',

IF(ABS(@destval-@valforcomp)<002,1,0),NULL) result

上面的REGEXP只是简单的用来判断是否是数字,通过这个我还发现了另一个问题,

SELECT ABS(@destval-@valforcomp);

这个查询出来不是等于001而是0010000000000000009

不知道有没有帮到你。

以上就是关于c#怎么连接数据库 用MySQL 详解全部的内容,包括:c#怎么连接数据库 用MySQL 详解、mysql数据库字段中 判断字段中字符类型 问题、mysql if是多条件该怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存