通过不同的方式访问数据库,区别就在于连接数据库的字符串的不同,这是我这两天学习的总结

一,通过ODBC访问

1.安装Microsoft ODBC.net:我安装的是mysql-connector-odbc-5.2.2-win32.msi
2,代码中引入 using system.Data.Odbc;

3,连接字符串

string connation = "Driver={MySQL ODBC 5.2w Driver};"     //指定驱动程序,驱动程序名可以在ODBC数据源管理器中查看

                           +"server=localhost;"                              //指定数据库所在服务器

                           +"uid=root;"                                          //指定数据库用户

                           +"Pwd=XXXX;"                                      //密码

                            +"database=nc;"                                   //要访问的数据库名

                           +"port=3306;"                                       //开放的端口号

疑问:option是什么????

二,通过OBDC数据源,设定DSN来连接Mysql

通过这种方式连接数据库,可以达到通过更改DSN配置参数来更改程序使用的数据库,不必更改代码。但是不是这种程序是不是有缺陷?

配置DSN步骤

1,安装Microsoft ODBC.net,我安装的是mysql-connector-odbc-5.2.2-win32.msi(官网下载)

2,运行ODBC32,进入ODBC数据源管理器

3,在用户DSN中选择【添加】

4,找到驱动程序(MySQL ODBC 5.2w Driver),点击完成

5,配置参数

Data Source Name(数据源命名,随意吧):JamesDataBase

Despriction (数据源描述):可不填写

Tcp/Ip Server (服务器名):localhost/127.0.0.1

port(开放的端口):默认为3306

Name Pipe?????

user (用户):填写Mys中设置好的用户名,如root

Password(密码):相对应的密码

dataBase:选择数据库

Test:测试是否连接成功

DSN配置结束。

代码中:1,引入using system.data.Odbc

2,连接字符串 connation = "DSN=JamesDataBase"

 

三、通过MySQL Connector Net访问mysql数据库

首先安装MySQL Connector Net 6.0.2,然后在程序中应用安装程序中的MySql.Data.dll文件

1,在程序引用中引入MySQL.Data

2,在代码中引入using MySQL.Data.MySqlClient;

3,连接字符串为connaction="server=localhost;"

                                   +"database=nc;"

                                   +"uid=root;"

                                   +"pwd=";

 

访问数据库内容(以查询nc数据库中informationtable表数据为例,使用ODBC访问)

string conn = "Driver={MySQL ODBC 5.2w Driver};"
                +"server=localhost;"
                +"uid=root;"
                +"Pwd=;"
                +"database=nc;"
                +"port=3306";
               //连接数据库字符串
            OdbcConnation  myCn= new OdbcConnection(conn);   //连接数据库对象

           string  comm = "select * from informationtable";   //操作数据库字符串

          myCn.Open();                                          //打开连接

          OdbcCommand  myCm = new OdbcCommand(comm,myCn);    //操作数据库命令对象

         OdbcDataReader  myDr = myCm.ExecuteReader();   //读取数据库内容

        while(myDr.Reader())

      {

    if(myDr.HasRows)

          {

               string[] str = new string[myDr.FieldCount];

      for (int i = 0; i < odbcDr.FieldCount; i++)
                    {
                        str[i] = odbcDr.GetString(i);  //假如我们封装好了一个类,那么这些数据就可以存到一个List<>中

//这里获取每一行的列值,也可以通过GetString(“列名”)


                    }

               

          }

myDr.Close();

myCn.Close();

//当然操作数据库还要注意处理异常,和关闭

      }

    其实我们如果通过MySQL.Data.MySqlClient进行访问数据库,只要将间接字符串做一下小小修改,将OdbcConnaction改成MySqlConnaction,将OdbcCommand改成MySqlCommand就可以了