操作Access数据库类

using System;
using System.Data;
using System.Data.OleDb;
using System.Web.UI;
using System.Web.Mail;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;


public class MdbClass
{
    protected OleDbConnection Connection;
    protected string connectionstring;

    public MdbClass()
    {
        connectionstring ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["connmdbstring"].Trim()); //数据库名称
        Connection = new OleDbConnection(connectionstring);
    }

    /// <summary>
    /// 构造函数
    /// </summary>
    /// <param name="connstring"></param>
    public MdbClass(string connstring)
    {
        connectionstring = connstring;
        Connection = new OleDbConnection(connectionstring);
    }
    public static string DbDataFile()
    {
        return   System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["connString"].Trim()); //数据库名称

    }
    /*执行返回结果和不返回结果的存储过程方法*/
    /// <summary>
    /// 根据存储过程名称和参数生成对应的SQL命令对象
    /// </summary>
    /// <param name="storedProcName">存储过程名</param>
    /// <param name="parameters">存储过程参数</param>
    /// <returns></returns>
    private OleDbCommand BuilderQueryCommand(string commondText, OleDbParameter[] parameters)
    {
        OleDbCommand command = new OleDbCommand();
        command.Connection = this.Connection;
        command.CommandText = commondText.Trim();
        if (parameters != null)
        {
            foreach (OleDbParameter p in parameters)
            {
                command.Parameters.Add(p);
            }
        }
        return command;
    }
    /// <summary>
    /// 返回结果
    /// </summary>
    /// <param name="commondText"></param>
    /// <param name="parameters"></param>
    /// <returns></returns>
    public OleDbDataReader GetOleDbDataReader(string commondText, OleDbParameter[] parameters)
    {
        OleDbDataReader reader;
        OleDbCommand cmd = BuilderQueryCommand(commondText, parameters);
        Connection.Close();    
        Connection.Open();
        reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        return reader;

    }
    /// <summary>
    /// 返回object,返回首行首列
    /// </summary>
    /// <param name="commondText"></param>
    /// <param name="parameters"></param>
    /// <returns></returns>
    public object GetObjectByRunSql(string commondText, OleDbParameter[] parameters)
    {
        object obj = null;
        OleDbCommand cmd = BuilderQueryCommand(commondText, parameters);
        try
        {
            Connection.Open();
            obj = cmd.ExecuteScalar();
            Connection.Close();
            return obj;
        }
        catch
        {
            Connection.Close();
            return obj;
        }
        finally
        {
            Connection.Close();
        }
     

    }
    /// <summary>
    /// 不返回结果
    /// </summary>
    /// <param name="commondText"></param>
    /// <param name="parameters"></param>
    /// <param name="effect"></param>
    /// <returns></returns>
    public int GetEffectedByRunSql(string commondText, OleDbParameter[] parameters)
    {
        int effect = 0;
        try
        {
            OleDbCommand cmd = BuilderQueryCommand(commondText, parameters);
            Connection.Open();
            effect = cmd.ExecuteNonQuery();
            Connection.Close();
            return effect;
        }
        catch
        {
            Connection.Close();
            return effect;
        }
        finally
        {
            Connection.Close();
        }
    }
  /// <summary>
  /// 返回DataSet
  /// </summary>
  /// <param name="commondText">sql语句</param>
  /// <param name="parameters">参数</param>
  /// <param name="tableName">表名</param>
  /// <returns></returns>
    public DataSet GetDataSet(string commondText, OleDbParameter[] parameters, string tableName)
    {
        try
        {
            DataSet ds = new DataSet();
            Connection.Open();
            OleDbDataAdapter myDa = new OleDbDataAdapter();
            myDa.SelectCommand = BuilderQueryCommand(commondText, parameters);
            myDa.Fill(ds, tableName);
            return ds;
        }
        catch
        {
            Connection.Close();
            return null;
        }
        finally
        {
            Connection.Close();
        }
    }
    /// <summary>
    /// 自定义分页
    /// </summary>
    /// <param name="commondText"></param>
    /// <param name="parameters"></param>
    /// <param name="start">开始记录</param>
    /// <param name="maxRecord">记录数</param>
    /// <param name="tableName"></param>
    /// <returns></returns>
    public DataSet GetDataSet(string commondText, OleDbParameter[] parameters, int start, int maxRecord, string tableName)
    {
        try
        {
            DataSet ds = new DataSet();
            Connection.Open();
            OleDbDataAdapter myDa = new OleDbDataAdapter();
            myDa.SelectCommand = BuilderQueryCommand(commondText, parameters);
            myDa.Fill(ds, start, maxRecord, tableName);
            return ds;
        }
        catch
        {
            Connection.Close();
            return null;
        }
        finally
        {
            Connection.Close();
        }
    }
  
  
    /// <summary>
    /// 删除ID号的记录
    /// </summary>
    /// <param name="id"></param>
    /// <param name="commondText"></param>
    /// <returns></returns>
    public bool DeleteByID(int id, string paraID,string commondText)
    {
        OleDbParameter[] p ={ new OleDbParameter(paraID, OleDbType.Integer) };
        p[0].Value = id;      
        return (this.GetEffectedByRunSql(commondText, p)>0);
    }

    /// <summary>
    /// 对str进行加密
    /// </summary>
    /// <param name="str">要加密的字符串</param>
    /// <param name="format">要使用的哈希算法:md5或sha1</param>
    /// <returns></returns>
    public string Encrypt(string str, string format)
    {
        return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, format);
    }

    public void ItemDataBount(System.Web.UI.WebControls.DataGrid dg, string del)
    {
        for (int i = 0; i < dg.Items.Count; i++)
        {
            System.Web.UI.WebControls.LinkButton lbtn = (System.Web.UI.WebControls.LinkButton)dg.Items[i].FindControl(del);

            if (lbtn != null)
            {
                lbtn.Attributes.Add("onclick", "javascript:return confirm('确定删除此项吗?');");
            }
        }
    }
  

    public void DropdowListBound(System.Web.UI.WebControls.DropDownList ddl, System.Data.DataView dv, string valueField, string textField)
    {
        ddl.DataSource = dv;
        ddl.DataValueField = valueField;
        ddl.DataTextField = textField;
        ddl.DataBind();
    }
    public void DataBound(System.Web.UI.WebControls.DataGrid dg, System.Data.DataView dv)
    {
        dg.DataSource = dv;
        dg.DataBind();
    }
    public void DataBound(System.Web.UI.WebControls.Repeater rpt, System.Data.DataView dv)
    {
        rpt.DataSource = dv;
        rpt.DataBind();
    }
    public void DataBound(System.Web.UI.WebControls.DataList dl, System.Data.DataView dv)
    {
        dl.DataSource = dv;
        dl.DataBind();
    }
    /// <summary>
    /// 全选,全不选;用法:js.BoundCheck(this.dgtopic,"chk","chkall",out str,out function);
    /// if(!Page.IsClientScriptBlockRegistered(function)){Page.RegisterClientScriptBlock(function,str);}
    /// </summary>
    /// <param name="dg">datagrid 控件</param>
    /// <param name="chk"></param>
    /// <param name="dgchkall">全选控件</param>
    /// <param name="regScript"></param>
    /// <param name="function"></param>
    public void BoundCheck(System.Web.UI.WebControls.DataGrid dg, string chk, string dgchkall, out string regScript, out string function)
    {
        regScript = "";
        System.Text.StringBuilder strScript = new System.Text.StringBuilder();
        if (dg.Controls.Count > 0)
        {
            foreach (DataGridItem item in dg.Controls[0].Controls)
            {
                if (item.ItemType == ListItemType.Header)
                {
                    CheckBox chkAll = (CheckBox)item.FindControl(dgchkall);
                    if (chkAll != null)
                    {
                        strScript = new System.Text.StringBuilder("<script language='javascript'> \n");
                        strScript.Append("    function checkStatus() { \n");
                        strScript.Append("        var bAll = true; \n");
                        strScript.Append("        bAll = document.all('" + chkAll.ClientID + "').checked; \n");

                        for (int i = 0; i < dg.Items.Count; i++)
                        {
                            CheckBox chk1 = (CheckBox)dg.Items[i].FindControl(chk);
                            if (chk1 != null)
                            {
                                strScript.Append("        document.all('" + dg.Items[i].FindControl(chk).ClientID + "').checked = bAll; \n");
                            }
                        }
                        strScript.Append("    } \n");
                        strScript.Append("</script> \n");

                        chkAll.Attributes.Add("onclick", "checkStatus()");
                    }
                }
            }
        }
        function = "checkStatus";
        regScript = strScript.ToString();
    }

    public string GetFileName()
    {
        return System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() + System.DateTime.Now.Hour.ToString() + System.DateTime.Now.Minute.ToString() + System.DateTime.Now.Second.ToString() + System.DateTime.Now.Millisecond.ToString();

    }
    public string GetLastName(string fileName)
    {
        return fileName.Substring(fileName.Length - 4);
    }
    /// <summary>
    /// 上传文件
    /// </summary>
    /// <param name="f"></param>
    /// <param name="dir">目录</param>
    /// <param name="filePath">文件路径</param>
    /// <returns></returns>
    public bool UpLoadFile(System.Web.UI.HtmlControls.HtmlInputFile f, string dir, out string filePath, out string info,out int length)
    {
        length = 0;
        info = "";
        filePath = "";
        try
        {
            if (f.PostedFile != null && f.PostedFile.FileName.Trim().Length > 0)
            {
                string strlast = GetLastName(f.PostedFile.FileName.Trim());
                string filename = GetFileName() + strlast;
                filePath = dir + "/" + filename;

                if (!File.Exists(filePath))
                {
                    f.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath(filePath));
                    length = f.PostedFile.ContentLength;
                    return true;
                }
                else
                {
                    info = "file is exist!";
                    return false;
                }
            }
            else
            {
                info = "please select file!";
                return false;
            }
        }
        catch
        {
            info = "Exception";
            return false;
        }
    }
    public string ServerFile(string strpath)
    {
        return System.Web.HttpContext.Current.Server.MapPath(strpath);
    }
    public string HtmlDeCode(string str)
    {
        return System.Web.HttpContext.Current.Server.HtmlDecode(str);
    }
    public string HtmlEnCode(string str)
    {
        return System.Web.HttpContext.Current.Server.HtmlEncode(str);
    }
    public string UrlDeCode(string str)
    {
        return System.Web.HttpContext.Current.Server.UrlDecode(str);
    }
    public string UrlEnCode(string str)
    {
        return System.Web.HttpContext.Current.Server.UrlEncode(str);
    }

}
posted @ 2008-07-17 22:18  jay-c  阅读(559)  评论(0)    收藏  举报