加载中…
个人资料
DreamTea
DreamTea
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,336
  • 关注人气:22
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C#之mysql数据库封装类

(2010-08-01 16:28:51)
标签:

杂谈

分类: 数据库方面

  这两天做的一个C/S结构的MIS系统,用到了mysql数据库,就参照网上的资料自己弄了个,这里贴出来,希望对需要的朋友有用,是个很简单的,高手见笑。

  using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Odbc;

namespace 客户风险管理系统
{
    /// <summary>
    /// 数据库封装类,用于执行对数据库的操作
    /// </summary>
    class DatabaseManager
    {
        /// <summary>
        /// 静态链接字符串,连接Mysql数据库
        /// </summary>
        private static string connection = "Driver={MySQL ODBC 5.1 Driver};Server=172.16.12.190;Database=mymysql;User=root;Password=xlt7057977;Option=3;";
        private static OdbcCommand cmd = new OdbcCommand();
        private static OdbcConnection con = null;
        /// <summary>
        /// Gets the con.获得数据库连接的方法
        /// </summary>
        /// <returns></returns>
        public static OdbcConnection GetCon()
        {
            con = new OdbcConnection(connection);
            con.Open();
            return con;
        }
        /// <summary>
        /// Clears this instance.关闭数据库连接的方法
        /// </summary>
        public static void Clear()
        {
            if (con.State == ConnectionState.Open)
                con.Close();
        }
        /// <summary>
        /// Execs the specified STRSQL.执行SQL语句,不需要返回结果的方法
        /// </summary>
        /// <param name="strsql">The STRSQL.</param>
        public static void Exec(string strSql)
        {
            try
            {
                cmd.Connection = GetCon();
                cmd.CommandText = strSql;
                int count = cmd.ExecuteNonQuery();
            }
            catch (OdbcException o)
            {
                MessageBox.Show(o.Message.ToString, "数据库错误警告");
            }
            finally
            {
                Clear();
            }
        }
        /// <summary>
        /// Execute the SQL and get count.执行sql语句并返回影响的行数
        /// </summary>
        /// <param name="strSql">The STR SQL.</param>
        /// <returns></returns>
        public static int ExecAndGetCount(string strSql)
        {
            try
            {
                cmd.Connection = GetCon();
                cmd.CommandText = strSql;
                string result = cmd.ExecuteScalar().ToString();
                int count = Convert.ToInt32(result);
            }
            catch (OdbcException o)
            {
                MessageBox.Show(o.Message.ToString(), "数据库错误警告");
            }
            finally
            {
                Clear();
            }
            return count;
        }
        /// <summary>
        /// Execute the SQL and get DataReader.执行sql语句并返回DateReader对象
        /// </summary>
        /// <param name="strSql">The STR SQL.</param>
        /// <returns></returns>
        public static OdbcDataReader ExecAndGetOdr(string strSql)
        {
            try
            {
                cmd.Connection = GetCon();
                cmd.CommandText = strSql;
                OdbcDataReader Odr = cmd.ExecuteReader();
            }
            catch (OdbcException o)
            {
                MessageBox.Show(o.Message.ToString(), "数据库错误警告");
            }
            return Odr;
        }
        /// <summary>
        /// Execute the SQL and get DataSet.执行Sql语句返回DataSet对象
        /// </summary>
        /// <param name="StrSql">The STR SQL.</param>
        /// <param name="TableName">Name of the table.</param>
        /// <returns></returns>
        public static DataSet ExecAndGetDs(string StrSql, string TableName)
        {
            try
            {
                OdbcDataAdapter Oda = new OdbcDataAdapter(StrSql, GetCon());
                DataSet ds = new DataSet();
                Oda.Fill(ds, TableName);
            }
            catch (OdbcException o)
            {
                MessageBox.Show(o.Message.ToString(), "数据库错误警告");
            }
            finally
            {
                Clear();
            }
            return ds;
        }
        /// <summary>
        /// Execute the SQL in transation.应用事务机制,批处理sql语句
        /// </summary>
        /// <param name="strSql">The STR SQL.</param>
        /// <returns></returns>
        public static bool ExecInTransation(string[] strSql)
        {
            bool flag = false;
            con = GetCon();
            cmd.Connection = con;
            OdbcTransaction myTransation;
            myTransation = con.BeginTransaction();
            try
            {
                for (int i = 0; i < strSql.Length; i++)
                {
                    cmd.Transaction = myTransation;
                    cmd.CommandText = strSql[i];
                    cmd.ExecuteReader();
                }
                myTransation.Commit();
                flag = true;
            }
            catch (Exception e)
            {
                myTransation.Rollback();
                flag = false;
            }
            finally
            {
                Clear();
            }
            return flag;
        }
    }
}
  哦对了,这里用到了C#文档注释,这里有个很好的工具,希望对大家有用

可以手动添加,具体规则可以看MSDN:http://msdn.microsoft.com/zh-cn/library/b2s063f7(VS.80).aspx

这里介绍一个工具,可以帮助生成注释,下载地址:http://submain.com/products/ghostdoc.aspx

  安装Sandcastle 和Sandcastle Help File Builder

下载地址:

http://sandcastle.codeplex.com/

http://shfb.codeplex.com/

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有