如何简单进行mysql数据库操作

时间:2021-04-30 11:23:18

本文目标:虽然不是专业程序员,由于工作需要,也需要写一点代码,比较长的代码可以分层,其中一个层是数据访问层,用于读写数据库,本人常用mysql,在此总结一下如何实现mysql读写操作。

自己的经验:经常使用动软针对mysql数据库表自动生成的代码,一般说来,先建好数据库的各张表,然后生成“简单【管理】三层”代码,在DBUtility目录下含有所有的数据库操作文件,由于我操作的是mysql数据库,所以只保留mysql数据库操作文件即可,如下图:

如何简单进行mysql数据库操作


核心的mysql操作类是DbHelperMySQL.cs,这个类中需要引用CommandInfo.cs、DESEncrypt.cs和PubConstant.cs三个文件,DESEncrypt.cs用来给字符串(例如数据库连接字符串)加密解密,PubConstant.cs用来从web.config中获取连接字符串。上述这几个文件组成一个类库项目中,项目名称任意,图中项目名称为zy_DBUtility,它们都属于同一个Maticsoft.DBUtility命名空间。

由于感觉DbHelperMySQL.cs对mysql的存储过程操作不太方便,所以又向这个类库项目中添加了mySQlHelper.cs文件,这是我从网上下载的一个mysql数据库操作类,其中的几个方法调用mysql的存储过程比较方便,mySQlHelper.cs和DbHelperMySQL.cs有些功能是重复的,二者可以合并,但是我懒得去搞,同时用着没什么不妥。

再说一下如何从web.config中获取连接字符串,在DbHelperMySQL.cs中,有一条语句如下:

public staticstring connectionString = PubConstant.ConnectionString;

connectionString是静态变量,无需实例化对象就可以直接使用,它通过PubConstant得到了数据库连接字符串。

其他项目,例如更高层的web网站,只要引用了本类库项目zy_DBUtility,就可以直接本类库中的所有类的方法。

下面分别就使用mySQlHelper.cs和DbHelperMySQL.cs中的方法举例:


1、 使用DbHelperMySQL.cs中的方法:

 

         public  static int getUserId(string name, string psw )

     {

       StringBuilder strSql = newStringBuilder();

       strSql.Append("selectjudge_id from judges where judge_name=@judge_name  and password=@password  ");

       MySqlParameter[] parameters ={

      new MySqlParameter("@judge_name", MySqlDbType.VarChar,20),

      new MySqlParameter("@password", MySqlDbType.VarChar,40),

     };

            parameters[0].Value =name.Trim();

            parameters[1].Value =psw.Trim();

 

            DataSet ds=  DbHelperMySQL.Query( strSql.ToString(),parameters);

            if (ds.Tables[0].Rows.Count > 0).......

     }

2、 使用mySQlHelper.cs中的方法调用已定义的存储过程:

(1) 本方法通过传入参数spName,调用一个存储过程,不需要传入存储过程的参数

public static DataSetgetDataset_StatisticByRoles( string spName )

  {

     DataSet  re = Maticsoft.DBUtility.MySqlHelper.ExecuteDataSet(DbHelperMySQL.connectionString,CommandType.StoredProcedure, spName );

     return re;

  }

(2) 本方法调用一个存储过程,需要传入参数给存储过程

  public staticint delPaperRecord(int judgeId, string whichType_input)

        {

            MySqlParameter[] parameters = { newMySqlParameter("@judgeId_input", MySqlDbType.Int32) ,new MySqlParameter("@whichType_input",MySqlDbType.VarChar, 20) };//参数数组

            parameters[0].Value = judgeId;

            parameters[1].Value =whichType_input;

 

 // DbHelperMySQL.connectionString 是在DbHelperMySQL.cs中定义的,由于DbHelperMySQL.c和mySQlHelper.cs都属于同一个类库项目,所以这里可以直接引用

            int re= Maticsoft.DBUtility.MySqlHelper.ExecuteNonQuery(DbHelperMySQL.connectionString,CommandType.StoredProcedure, "delPaper", parameters); //delPaper是存储过程名称

            returnre;

        }

总结:综上所述,为了实现mysql操作,步骤如下:

1、在vs2010解决方案中建立一个数据库操作项目,项目名称假设是zy_DBUtility,将图中5个cs文件都包含在此项目中,同时引用MySql.Data.dll文件。

2、PubConstant.cs中加上usingSystem.Configuration;否则,ConfigurationManager.AppSettings["ConnectionString"]出错,无法读取web.config中的ConnectionString。

3、在解决方案中建立其他项目,例如web项目,引用zy_DBUtility项目,这样就可以zy_DBUtility中的类了。