现在的位置: 首页 > 综合 > 正文

sqlHelper

2013年09月03日 ⁄ 综合 ⁄ 共 5830字 ⁄ 字号 评论关闭

 

using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Net;

/// <summary>
///sqlHelper 的摘要说明
/// </summary>
public class sqlHelper
{

    //获取连接字符串
    public static readonly string conn = ConfigurationManager.ConnectionStrings["constr"].ToString();

    public static int ExecuteNonQuery(string connectionStrings, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
    {
        OleDbCommand cmd = new OleDbCommand();
        using (OleDbConnection conn = new OleDbConnection(connectionStrings))
        {
            //通过preparecommand方法将参数逐个加入到OleDbCommand的参数集合中
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
            int val = cmd.ExecuteNonQuery();
            //清空OleDbCommand的值
            cmd.Parameters.Clear();
            return val;
        }
    }
    public static OleDbDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params  OleDbParameter[] commandparamters)
    {
        OleDbCommand cmd = new OleDbCommand();
        OleDbConnection conn = new OleDbConnection(connectionString);
        //在这里使用try/catch处理是因为如果方法出现异常,则sqlDataReader就不存在
        try
        {
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandparamters);
            OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            cmd.Parameters.Clear();
            return rdr;
        }
        catch
        {
            conn.Close();
            throw;
        }
    }
    public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
    {
        OleDbCommand cmd = new OleDbCommand();
        using (OleDbConnection conn = new OleDbConnection(connectionString))
        {
            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
            object val = cmd.ExecuteScalar();
            cmd.Parameters.Clear();
            return val;
        }
    }
    public static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, OleDbTransaction trans, CommandType cmdType, string cmdText, OleDbParameter[] cmdParam)
    {
        //判断数据库连接状态
        if (conn.State != ConnectionState.Open)
            conn.Open();
        cmd.Connection = conn;
        cmd.CommandText = cmdText;

        //判断是否需要事务处理
        if (trans != null)
            cmd.Transaction = trans;
        cmd.CommandType = cmdType;

        if (cmdParam != null)
        {
            foreach (OleDbParameter parm in cmdParam)
                cmd.Parameters.Add(parm);
        }
    }
    public static DataTable ExectueTable(string strSQL)
    {
        //strSQL = "select zj_Company.Company_Name,zj_VIP.ID,zj_VIP.Vip_Name,zj_VIP.Vip_Type from zj_VIP,zj_Company where zj_VIP.CompanyID=zj_Company.ID and (zj_VIP.Vip_Type='' or zj_Company.Company_Name='' or zj_VIP.Vip_Name='')";
        using (OleDbConnection constr = new OleDbConnection(conn))
        {
            //实例DataTalbe
            DataTable dt = new DataTable();
            //添充数据集
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, constr);
            da.Fill(dt);
            constr.Close();
            constr.Dispose();
            return dt;
        }
    }
    /// <summary>  
    /// 执行SQL语句,返回影响的记录数  
    /// </summary>  
    /// <param name="SQLString">SQL语句</param>  
    /// <returns>影响的记录数</returns>  
    public static int ExecuteSqlCount(string strSQL)
    {
        int count = 0;
        using (OleDbConnection  conn = new OleDbConnection(sqlHelper.conn))
        {
            using (OleDbCommand cmd = new OleDbCommand(strSQL, conn))
            {
                try
                {

                    conn.Open();
                    OleDbDataReader dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        count += 1;
                    }
                    dr.Dispose();
                    conn.Close();
                    return count;
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    conn.Close();
                    throw new Exception(E.Message);
                }
            }
        }
    }
    /// <summary>
    /// 分页读取数据
    /// </summary>
    /// <param name="query">select查询语句</param>
    /// <param name="pageSize">每页显示数据数</param>
    /// <param name="currentPageIndex">当前页码</param>
    /// <param name="dt">存储数据的DataTable实例</param>
    public static void FillDataTable(string query, int pageSize, int CurrentPageIndex, DataTable dt)
    {
        //读取数据的开始索引
        long startIndex = (CurrentPageIndex - 1) * pageSize;
        //读取数据的结束索引
        long endIndex = CurrentPageIndex * pageSize - 1;
        //DataReader读取当前索引行
        long readToIndex = -1;
        using (OleDbConnection  conn = new OleDbConnection(sqlHelper.conn))
        {
            OleDbCommand  cmd = new OleDbCommand(query, conn);
            conn.Open();
            OleDbDataReader dr = cmd.ExecuteReader();
            //数据源中的列数
            int cols = dr.VisibleFieldCount;
            //构造DataTable结构
            for (int i = 0; i < cols; i++)
            {
                dt.Columns.Add(new DataColumn(dr.GetName(i), dr.GetFieldType(i)));
            }
            //读取数据将数据一行一行的添加到DataTable
            while (dr.Read())
            {
                readToIndex++;
                //当DataReader指针在开始索引和结束索引闭区间时才读数据构造DataRow,并添加到DataTable
                if (readToIndex >= startIndex && readToIndex <= endIndex)
                {
                    DataRow row = dt.NewRow();
                    for (int i = 0; i < cols; i++)
                    {
                        row[i] = dr[i];
                    }
                    dt.Rows.Add(row);
                }
            }
            dr.Close();
            conn.Close();
        }
    }
    //取IP地址
    public static string getIPAddress()
    {
        //System.Net.IPAddress addr;
        // 获得本机局域网IP地址  
        //addr = new System.Net.IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address);
       string addr = HttpContext.Current.Request.UserHostAddress;
        return addr.ToString();
    }
    //MD5
    public static string md5(string str)
    {
      str=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str,"MD5");
      return str;
    }
}

抱歉!评论已关闭.