`
ooaer
  • 浏览: 137527 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

DBAccess

    博客分类:
  • C#
阅读更多
以前写过的基于存储过程的SQLServer DBAccess,简单的贴一下
(Oracle 和 其他通用访问方式大同小异):

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace OnLineExamDBAccess
{
    public class DBMSSQLServer:IDBHelp
    {
        private SqlConnection connection;
        private SqlCommand command;
        public DBMSSQLServer(string connStr)
        {
            this.connection = new SqlConnection(connStr);
        }

        #region IDBHelp 成员
        public void Open()
        {
            if (this.connection != null && !this.connection.State.Equals(ConnectionState.Open))
                this.connection.Open();
   
        }

        public void Close()
        {
            if (this.connection != null && !this.connection.State.Equals(ConnectionState.Closed))
                this.connection.Close();
        }

        public void PublicClass(string procName, IDataParameter[] parameters)
        {
            command = new SqlCommand();
            command.Connection = this.connection;
            command.CommandType = CommandType.StoredProcedure;
            command.CommandText = procName;
            SqlParameter[] sqlParameters = (SqlParameter[])parameters;
            if (this.command.Parameters.Count > 0)
            {
                this.command.Parameters.Clear();
            }
            if (sqlParameters != null && sqlParameters.Length > 0)
            {
                foreach (SqlParameter sqlParameter in sqlParameters)
                {
                    this.command.Parameters.Add(sqlParameter);
                }
            }
            
        }

        public int ExecSql(string procName, IDataParameter[] parameters)
        {
            try
            {
                SqlParameter[] sqlparameters = (SqlParameter[])(parameters);
                this.Open();
                this.PublicClass(procName,parameters);
                int i = command.ExecuteNonQuery();
                this.Close();
                return i;
            }

            catch (Exception exp)
            {

                throw(exp);
            }
        }

        public DataSet ExecSqlReturnDataSet(string dsName, string procName, IDataParameter[] parameters)
        {
            try
            {
                SqlParameter[] sqlparameters = (SqlParameter[])(parameters);
                this.Open();
                this.PublicClass(procName,parameters);
                SqlDataAdapter da = new SqlDataAdapter();
                DataSet ds = new DataSet();
                da.SelectCommand = this.command;
                da.Fill(ds,dsName);
                this.Close();
                return ds;
            }

            catch (Exception exp)
            {
                throw (exp);
            }
        }

        public int ExecSqlReturnScalar(string procName, IDataParameter[] parameters)
        {
            try
            {
                SqlParameter[] sqlparameters = (SqlParameter[])(parameters);
                this.Open();
                this.PublicClass(procName, parameters);
                int i = Convert.ToInt32(this.command.ExecuteScalar());
                this.Close();
                return i;
            }

            catch (Exception exp)
            {
                throw (exp);
            }

        }
        #endregion
        
        
    }
}

基于SQL语句的访问方式(access数据库)
(二年级写的垃圾一点,呵呵):

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;

/// <summary>
/// Dbase 的摘要说明
/// 对数据库的基本访问方法
/// 2009年3月第一次编写
/// 2009年5月3日修改connstr为非const型
/// </summary>


public class Dbase
{
    /*
    public const string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
        + @"F:\工程\dsweb_base\dsweb"
        +@"\App_Data\dsweb.mdb;";
    */

    private string connStr;

    protected OleDbConnection objconn;
    protected OleDbCommand objcom;
    public Dbase()
    {
        connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
            + (System.Web.HttpContext.Current.Request.PhysicalApplicationPath.ToString())
            + @"App_Data\dsweb.mdb;";
        objconn = new OleDbConnection(connStr);
        objcom = new OleDbCommand();
        objcom.Connection = objconn;
    }

    /************************************************************************/
    /*090504日增加                                                          */
    /************************************************************************/
    public Dbase(string dbpath)
    {
        connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
            + (System.Web.HttpContext.Current.Request.PhysicalApplicationPath.ToString())
            + dbpath;
        objconn = new OleDbConnection(connStr);
        objcom = new OleDbCommand();
        objcom.Connection = objconn;
    }

    /*
        public SqlDataReader DataSelectMultiLine(string sql)
        {
            SqlDataReader QueryData;
            try
            {
                objconn.Open();
                objcom.CommandText = sql;
                QueryData = objcom.ExecuteReader();
            }
            catch
            {
        
                return null;
            }
            return QueryData;
        }
    */
    public DataTable DataSelectMultiLine(string sql)
    {
        objconn.Open();
        objcom.CommandText = sql;
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        DataSet dsDataSet = new DataSet();
        adapter.SelectCommand = objcom;
        adapter.Fill(dsDataSet, "table");
        DataTable dtTable = dsDataSet.Tables["table"];
        return dtTable;
    }

    public object DataSelectSingalLine(string sql)
    {
        object obj = new object();
        try
        {
            objconn.Open();
            objcom.CommandText = sql;
            obj = objcom.ExecuteScalar();
        }
        catch
        {
            if (objconn.State == ConnectionState.Open)
                objconn.Close();
            return null;
        }
        if (objconn.State == ConnectionState.Open)
            objconn.Close();
        return obj;
    }

    public int DataNonSelect(string sql)
    {
        int a = 0;
        try
        {
            objconn.Open();
            objcom.CommandText = sql;
            a = objcom.ExecuteNonQuery();
        }
        catch
        {
            if (objconn.State == ConnectionState.Open)
                objconn.Close();
            return -1;
        }
        if (objconn.State == ConnectionState.Open)
            objconn.Close();
        return a;
    }

    public bool Close()
    {
        try
        {
            if (objconn.State == ConnectionState.Open)
                objconn.Close();
        }
        catch
        {
            return false;
        }
        return true;
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics