C#直接连接MySql

猿掌柜
2021-03-11 / 0 评论 / 150 阅读 / 正在检测是否收录...

1. 引入MySql.data.dll

首先在创建工程后要引入MySql.Data.dll文件。在创建的项目上右键找到Nuget程序包。

然后按照红框内的方式搜索,一般第一个即为MySql.data.dll文件,点击下载导入即可。

SDK引入之后下面我们就可以进行对MySql的操作啦。。。
注:一定要先下载好MySql之后才可以呀,最好先创建一个表作为测试表,不然测试都不好测试。

2. 与数据库建立连接

先进行一个简单的连接,在这里,建立连接用到的是MySqlConnection这个类。
第一个string值中的值分别代表:server:ip地址 port:端口号 database:数据库名称 user:用户名 password:密码
数据库在本地的话ip可以写成127.0.0.1或者localhost,这两个都代表是本地IP

class Program
{
    static void Main(string[] args)
    {
        //这是用来连接数据库的信息,
        string connect = "server=127.0.0.1;port=3306;database=mygame;user=root;password=root;";

        //注册连接信息
        MySqlConnection conn = new MySqlConnection(connect);
        conn.Open();//开始连接数据库

        conn.Close();//关闭连接数据库
    }
}

在open()开始连接的时候是可能报错的,比如端口号写错等等,为了捕捉异常可以这么修改。

class Program
{
    static void Main(string[] args)
    {
        //这是用来连接数据库的信息,
        string connect = "server=127.0.0.1;port=3306;database=mygame;user=root;password=root;";

        //注册连接信息
        MySqlConnection conn = new MySqlConnection(connect);

        try
        {
            conn.Open();//开始连接数据库
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
        finally
        {
            conn.Close();//关闭连接数据库
        }
    }
}

3. 操作数据库

查询
现在已经建立好连接了,下面进行操作数据库的部分。用到MySqlCommand类来根据命令进行操作,利用MySqlDataReader类进行获取读到的数据。
reader.Reader()方法调用后,reader读取了一行数据,调用一次向下读一行,重复调用会一直往下读,利用reader[0]、reader[1]。。。可以获取这一行某一列的数据。
reder的放回值为bool值,如果返回为false即已经读到了最后一行了。

        try
        {
            conn.Open();//开始连接数据库
            string sql = "select * from tablename";//sql命令
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            MySqlDataReader reader = cmd.ExecuteReader();
            reader.Read();
            Console.WriteLine(reader[0]);//打印第一行第一列的数据
        }

插入
插入即“增”数据,设定好MySql命令后,使用command命令即可实现增加数据的功能。

        void Insert()
        {
            string connectStr = "server=127.0.0.1;port=3306;database=mygame;user=root;password=root;";
            MySqlConnection conn = new MySqlConnection(connectStr);
            try
            {
                conn.Open();
                string sqlCmd = "insert into tablename(colname,colname...) values(value,value...)";
                MySqlCommand mySqlCommand = new MySqlCommand(sqlCmd, conn);
                int result = mySqlCommand.ExecuteNonQuery();//返回值为影响了几行数据
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                conn.Close();
            }
        }

更新数据
更新数据即“改”数据,使用update的sql命令即可。
注意,要更新的行数使用id或者不重复的值来区分一下。

void update()
    {
        string connectStr = "server=127.0.0.1;port=3306;database=mygame;user=root;password=root;";
        MySqlConnection conn = new MySqlConnection(connectStr);
        try
        {
            conn.Open();
            string sqlCmd = "update tablename set colname='' ,colname='' where id=  ";//
            MySqlCommand mySqlCommand = new MySqlCommand(sqlCmd, conn);
            int result = mySqlCommand.ExecuteNonQuery();//返回值为影响了几行数据
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
        finally
        {
            conn.Close();
        }
    }

删除
“删”数据,也很简单,使用delete命令指定表和行数之后就可以删除了。

void delete()
    {
        string connectStr = "server=127.0.0.1;port=3306;database=mygame;user=root;password=root;";
        MySqlConnection conn = new MySqlConnection(connectStr);
        try
        {
            conn.Open();
            string sqlCmd = "delete from tablename where id=  ";
            MySqlCommand mySqlCommand = new MySqlCommand(sqlCmd, conn);
            int result = mySqlCommand.ExecuteNonQuery();//返回值为影响了几行数据
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
        finally
        {
            conn.Close();
        }
    }
6

评论 (0)

取消