C#连接MySql及相关操作

来源:互联网 发布:淘宝侵犯商标权 编辑:程序博客网 时间:2024/06/07 06:38

      第一次和数据库打交道。 最近在做软件工程的作业,以前做ACM的题目,觉得用文本入文本出挺方便,一直没想用数据库,好吧,我承认是我懒。。

 

      刚开始用的是SQL Server,结果下了个SQL Server 2005 express,问题N多。。在与数据库建立连接的过程中老师出现“error 40”远程连接错误或实例错误。没办法,只能换成MySQL试试,其实一直对MySQL有抵制心理,想着都什么年代了还是命令提示符界面(再一次的BS我吧),结果同学告知原来是有界面软件的。。。我下的是heidiSQL,还蛮好用,不过要注意的是在创建数据库和table的时候注意选择gbk字符集,不然的话中文操作会出现一些问题。

 

     终于进入到正题了。现在来说说C#连接MySQL的相关方法。

     (1)首先应该安装Microsoft ODBC.NET驱动,我下载的是mysql-connector-odbc-5.1.8-win32.msi,可以到MySQL官网上下载

     (2)安装完之后下载MySql.Data.dll,在项目中引用,具体步骤是项目->添加引用->浏览,找到你下载的dll文件

     (3)最后别忘了在源文件中添加 using MySql.Data.MySqlClient;   OK,现在可以直接编程对数据库进行操作了。

 

   1.   与数据库进行连接

 

         // 连接字符串,server = localhost,指定服务器名称,localhost指本地服务器。uid = 登陆名,password = 密码,在安 装MySQL的时候设定。database = 要连接的数据库,可以通过heidiSQL先建立student数据库.注意最后一句Charset=utf8,设置字符集为utf8,否则得话在插入时不能插入中文,会显示问号。

            string conn_str = "server = localhost;uid=root;password=123;database=student;Charset=utf8";

 

        //  建立连接
            MySqlConnection conn = new MySqlConnection(conn_str);

 

        // 别忘了这句,最后要显式的关闭连接
            conn.Open();

 

        好了,到现在为止已经成功的与数据库建立了连接,总共三句话,简单吧~~

 

   2.  写数据进数据库

 

      // SQL操作字符串,插入一组数据,学号,姓名,年龄

       string comd_str = "insert into sc values('202101', '周二', '19')";

 

 

     // 操作命令,Command用于向数据库传输的命令的对象,其构造函数常用两个参数,一个参数是所使用的 命令文本(CommandText),另一个为所使用的连接对象Connection

 

        MySqlCommand com = new MySqlCommand(comd_str, conn);

 

 

    // 命令对象常用的有三个方法:ExecuteReader(), ExecuteNonQuery()和ExecuteScalar()。ExecuteNonQuery方法用于返回所影响的行数,一般用于Insert、Update和Delete操作
        com.ExecuteNonQuery();

 

        现在数据已经写入到数据库了~

 

  3. 查询所有数据

 

      // 命令文本 

      string comd = "select * from sc";

 

     // 还是用之前与数据库的连接,只是更改command对象的命令文本

      com.CommandText = comd;

 

     //  ExecuteReader方法用于返回查询结果的全部数据,MySqlDataReader用于从返回来的数据区中读取数据
      MySqlDataReader dr = com.ExecuteReader();

 

    // 通过dr读取数据

    while (dr.Read() )  //  每读取一条记录后,指向其下一条记录
            {
                Console.WriteLine(dr[0].ToString() + "/t" + dr[1].ToString() +"/t" + dr[2].ToString());
            }

 

   // 关闭读取器

     dr.Close();

  

 4. 关闭连接

   conn.Close();

  好了,大功告成 ~ 第一次写这么长的文章啊。。

  参考: http://apps.hi.baidu.com/share/detail/24196475

            http://database.51cto.com/art/201006/203551.htm