sql数据库操作(c#+net )

using   System;
using   System.Windows.Forms;
using   System.Data;
using   System.Data.SqlClient;
using   System.IO;
using   System.Text;
using   System.Xml;
using   System.Collections;

namespace   Com.Richinfo.Framework.Utils
{
    class   SysBaseUtils
    {
        private   static   SqlConnection   con;
        private   static   SqlCommand   cmd;
        private   static   DataSet   ds;
        private   static   SqlDataAdapter   da;


        #region   获取数据库连接对象
        ///   <summary>
        ///   获取数据库连接对象
        ///   </summary>
        ///   <returns> SqlConnection </returns>
        public   static   SqlConnection   GetDBConnection()
        {
            string   ConnStr   =   GetDBConnectionString();
            try
            {
                con   =   new   SqlConnection(ConnStr);
                return   con;
            }
            catch   //(Exception   ex)
            {
                //System.Console.Out.Write(ex.Message);
                ShowError( "连接数据库失败。 ");
                return   null;
            }
        }

        #endregion

        #region   获取连接字符串
        ///   <summary>
        ///   获取连接字符串
        ///   </summary>
        ///   <returns> string </returns>
        public   static   string   GetDBConnectionString()
        {
            string   text   =   Application.StartupPath   +   "//config ";
            try
            {
                if   (!Directory.Exists(text))
                {
                    Directory.CreateDirectory(text);
                }
                XmlTextReader   xtr   =   new   XmlTextReader(text   +   "//data.xml ");
                while   (xtr.Read())
                {
                    if   (xtr.Name   ==   "STRING ")
                    {
                        xtr.Read();
                        return   xtr.Value;
                    }

                }
                xtr.Close();
                return   null;
            }
            catch   //(Exception   ex)
            {
                //System.Console.Out.Write(ex.Message);
                ShowError( "获取不到数据库连接。 ");
                return   null;
            }
        }

        #endregion

        #region   查询操作,并且返回记录集
        ///   <summary>
        ///   查询操作,并且返回记录集
        ///   </summary>
        ///   <param   name= "StrSQL "> 查询SQL语句 </param>
        ///   <param   name= "obj "> </param>
        ///   <returns> DataSet </returns>
        public   static   DataSet   ExecuteQuery(string   StrSQL,   Hashtable   obj)
        {
            GetDBConnection();
            try
            {
                con.Open();
                cmd   =   new   SqlCommand();
                cmd.CommandType   =   CommandType.Text;
                cmd.CommandText   =   StrSQL;
                cmd.Connection   =   con;
                if   (obj   !=   null)
                {
                    IDictionaryEnumerator   numerator   =   obj.GetEnumerator();
                    while   (numerator.MoveNext())
                    {
                        cmd.Parameters.AddWithValue(numerator.Entry.Key.ToString(),   numerator.Entry.Value);
                    }
                }
                ds   =   new   DataSet();
                da   =   new   SqlDataAdapter(cmd);
                da.Fill(ds);
                for   (int   i   =   0;   i   <   cmd.Parameters.Count;   i++)
                {
                    cmd.Parameters.Remove(cmd.Parameters[i]);
                }
                cmd.Dispose();
                con.Close();
                con.Dispose();
                return   ds;
            }
            finally  
            {
                cmd.Dispose();
                con.Close();
                con.Dispose();                
            }

        }

        #endregion

        #region   查询操作,并且返回记录集
        ///   <summary>
        ///   查询操作,并且返回记录集
        ///   </summary>
        ///   <param   name= "StrSQL "> 查询SQL语句 </param>
        ///   <param   name= "obj "> </param>
        ///   <returns> DataSet </returns>
        public   static   DataSet   ExecuteQuery(string   StrSQL)
        {
            GetDBConnection();
            try
            {
                con.Open();
                cmd   =   new   SqlCommand();
                cmd.CommandType   =   CommandType.Text;
                cmd.CommandText   =   StrSQL;
                cmd.Connection   =   con;

                ds   =   new   DataSet();
                da   =   new   SqlDataAdapter(cmd);
                da.Fill(ds);
                for   (int   i   =   0;   i   <   cmd.Parameters.Count;   i++)
                {
                    cmd.Parameters.Remove(cmd.Parameters[i]);
                }
                cmd.Dispose();
                con.Close();
                con.Dispose();
                return   ds;
            }
            finally  
            {
                cmd.Dispose();
                con.Close();
                con.Dispose();                
            }

        }

        #endregion

        #region   获取DataReader
        ///   <summary>
        ///   获取DataReader
        ///   </summary>
        ///   <param   name= "strSQL "> SQL语句 </param>
        ///   <param   name= "obj "> </param>
        ///   <returns> SqlDataReader </returns>
        public   static   SqlDataReader   GetReaderCloseDb(string   strSQL,   Hashtable   obj)
        {
            GetDBConnection();
            try
            {
                con.Open();
                cmd.CommandType   =   CommandType.Text;
                cmd.CommandText   =   strSQL;
                cmd.Connection   =   con;

                if   (obj   !=   null)
                {
                    IDictionaryEnumerator   numerator   =   obj.GetEnumerator();
                    while   (numerator.MoveNext())
                    {
                        cmd.Parameters.AddWithValue(numerator.Entry.Key.ToString(),   numerator.Entry.Value);
                    }
                }
                SqlDataReader   dr   =   cmd.ExecuteReader();
                for   (int   i   =   0;   i   <   cmd.Parameters.Count;   i++)
                {
                    cmd.Parameters.Remove(cmd.Parameters[i]);
                }
                return   dr;
            }
            catch  
            {
                MessageBox.Show( "数据库连接错误! ");
                return   null;
            }

        }

        #endregion

        #region   数据增、删、改操作,成功返回1,失败返回0
        ///   <summary>
        ///   数据增、删、改操作,成功返回1,失败返回0
        ///   </summary>
        ///   <param   name= "StrSQL "> 增、删、改SQL语句 </param>
        ///   <param   name= "obj "> </param>
        ///   <returns> int </returns>
        public   static   int   ExecuteUpdate(string   StrSQL,   Hashtable   obj)
        {
            GetDBConnection();
            try
            {
                con.Open();
                cmd   =   new   SqlCommand();
                cmd.CommandType   =   CommandType.Text;
                cmd.CommandText   =   StrSQL;
                cmd.Connection   =   con;
                if   (obj   !=   null)
                {
                    IDictionaryEnumerator   numerator   =   obj.GetEnumerator();
                    while   (numerator.MoveNext())
                    {
                        cmd.Parameters.AddWithValue(numerator.Entry.Key.ToString(),   numerator.Entry.Value);
                    }
                }
               
                return   cmd.ExecuteNonQuery();                            
            }
            finally  
            {                  
                cmd.Dispose();
                con.Close();
                con.Dispose();                
            }
        }

        #endregion

        #region   数据增、删、改操作,成功返回1,失败返回0
        ///   <summary>
        ///   数据增、删、改操作,成功返回1,失败返回0
        ///   </summary>
        ///   <param   name= "StrSQL "> 增、删、改SQL语句 </param>
        ///   <param   name= "obj "> </param>
        ///   <returns> int </returns>
        public   static   int   ExecuteUpdate(string   StrSQL)
        {
            GetDBConnection();
            try
            {
                con.Open();
                cmd   =   new   SqlCommand();
                cmd.CommandType   =   CommandType.Text;
                cmd.CommandText   =   StrSQL;
                cmd.Connection   =   con;

                return   cmd.ExecuteNonQuery();
               
            }
            finally   //(Exception   ex)
            {                
                cmd.Dispose();
                con.Close();
                con.Dispose();                
            }
        }

        #endregion

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值