当前位置:编程学习 > C#/ASP.NET >>

asp.net数据库类的调用

我最近学习asp.net绑定数据库  想把数据库绑定代码写在一个类里面,重复调用 。 已经创建了  .cs 的类文件 。 但不知道在 .aspx 中怎么调用 比如 读取的数据直接在页面的任何地方显示 比如在  label空间中 或 textbox 空间 text 属性中。
我的   dataconnection.cs 类文件里的代码是:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;

namespace DB
{
    /// <summary>
    /// DataBase 的摘要说明。
    /// </summary>
    
    /// <summary>
    /// 数据库连接类型
    /// </summary>
    public enum dbType
    {
        /// <summary>
        /// SQL数据库
        /// </summary>
        sql,
        /// <summary>
        /// access数据库
        /// </summary>
        access
    }
    public class DataBase
    {
        // 连接数据源
        private SqlConnection con = null;
        private OleDbConnection conn = null;
        //连接数据类型
        dbType cType;
        public DataBase(string conStr,dbType type)
        {
            this.cType = type;
            if(type == dbType.sql)
                con = new SqlConnection(conStr);
            else if(type == dbType.access)
                conn = new OleDbConnection(conStr);
        }

        /// <summary>
        /// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <returns>DataSet</returns>
        public DataSet returnDS(string sql)
        {
            
            DataSet ds=new DataSet();
            try
            {
                if(cType == dbType.sql)
                {
                    SqlCommand cmd =new SqlCommand(sql,con);
                    cmd.CommandTimeout=20;
                    this.Open();
                    SqlDataAdapter adapter=new SqlDataAdapter(cmd);
                    adapter.Fill(ds,"tempTable");
                
                }
                else if(cType == dbType.access)
                {
                    OleDbCommand cmd = new OleDbCommand(sql,conn);
                    cmd.CommandTimeout=20;
                    this.Open();
                    System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                    adapter.Fill(ds,"tempTable");
                }
            }
            catch(Exception e)
            {
                throw(e);
                ds = null;
            }
            finally
            {
                this.Close();    
            }

            return ds;
          
        }

        /// <summary>
        /// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <param name="sRecord">开始记录数</param>
        /// <param name="mRecord">最大记录数</param>
        /// <returns>DataSet</returns>
        public DataSet returnDS(string sql,int sRecord,int mRecord)
        {
            
            DataSet ds=new DataSet();
            try
            {
                if(cType == dbType.sql)
                {
                    SqlCommand cmd =new SqlCommand(sql,con);
                    cmd.CommandTimeout=20;
                    this.Open();
                    SqlDataAdapter adapter=new SqlDataAdapter(cmd);
                    adapter.Fill(ds,sRecord,mRecord,"tempTable");
                
                }
                else if(cType == dbType.access)
                {
                    OleDbCommand cmd = new OleDbCommand(sql,conn);
                    cmd.CommandTimeout=20;
                    this.Open();
                    System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                    adapter.Fill(ds,sRecord,mRecord,"tempTable");
                }
            }
            catch(Exception e)
            {
                throw(e);
                ds = null;
            }
            finally
            {
                this.Close();    
            }

            return ds;
          
        }

        /// <summary>
        /// 对数据库的增,删,改的操作
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns>是否成功</returns>
        public bool OperateDB(string sql)
        {
            bool succeed=false;
            int cnt = 0;
            try
            {
                if(cType == dbType.sql)
                {
                    SqlCommand cmd = new SqlCommand(sql,con);
                    cmd.CommandTimeout = 20;
                    this.Open();
                    cnt = cmd.ExecuteNonQuery();
                
                }
                else if(cType == dbType.access)
                {
                    OleDbCommand cmd = new OleDbCommand(sql,conn);
                    cmd.CommandTimeout=20;
                    this.Open();
                    cnt = cmd.ExecuteNonQuery();
                }
            }
            catch(Exception e)
            {
                throw(e);
            }
            finally
            {
                if(cnt>0)
                {
                    succeed=true;
                }
                this.Close();
            }
                
            return succeed;
        }

        /// <summary>
        /// 获得该SQL查询返回的第一行第一列的值,如果没有查询到则返回NULL
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <returns>返回的第一行第一列的值</returns>
        public string getValue(string sql)
        {
            string str=null;
            try
            {
                if(cType == dbType.sql)
                {
                    SqlCommand cmd = new SqlCommand(sql,con);
                    this.Open();
                    str = cmd.ExecuteScalar().ToString();
                
                }
                else if(cType == dbType.access)
                {
                    OleDbCommand cmd = new OleDbCommand(sql,conn);
                    this.Open();
                    str = cmd.ExecuteScalar().ToString();
                }
            }
            catch(Exception e)
            {
                throw(e);
            }
            finally
            {
                this.Close();
            }
            
            return str;
        }        


        /// <summary>
        ///  获得该SQL查询返回DataTable,如果没有查询到则返回NULL
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <returns></returns>
        public DataTable getTable(string sql)
        {
            DataTable tb = null;
            DataSet ds = this.returnDS(sql);
            if(ds != null)
            {
                tb = ds.Tables["tempTable"];
            }

            return tb;
        }
        
        /// <summary>
        /// 打开数据库连接.
        /// </summary>
        private void Open() 
        {
            if(cType == dbType.sql)
            {
                if(con.State == System.Data.ConnectionState.Closed)
                {
                    con.Open();
                }
                else if(con.State == System.Data.ConnectionState.Broken)
                {
                    con.Close();
                    con.Open();
                }
            }
            else if(cType == dbType.access)
            {
                if(conn.State == System.Data.ConnectionState.Closed)
                {
                    conn.Open();
                }
                else if(conn.State == System.Data.ConnectionState.Broken)
                {
                    conn.Close();
                    conn.Open();
                }
            }
        }

        /// <summary>
        /// 关闭数据库连接
        /// </summary>
        public void Close() 
        {
            if(cType == dbType.sql)
            {
                if (con != null)
                {
                    con.Close();
                }
            }
            else if(cType == dbType.access)
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }
        }

        /// <summary>
        /// 释放资源
        /// </summary>
        public void Dispose() 
        {
            if(cType == dbType.sql)
            {
                // 确认连接是否已经关闭
                if (con != null) 
                {
                    con.Dispose();
                    con = null;
                }  
            }
            else if(cType == dbType.access)
            {
                if (conn != null) 
                {
                    conn.Dispose();
                    conn = null;
                }  
            }
  
        }

    }
}


怎么用请高手们详细指点吧  谢谢 各位大侠~~~!

--------------------编程问答-------------------- 可以直接参考sqlhelper --------------------编程问答-------------------- 在aspx.cs中
一、新建数据库类对象
DataBase db=new DataBase ("你的连接字符串",dbType.sql);
二、调用DataBase里面的方法,举个例子
this.Label1.Text = db.getValue("这里是你的sql语句");   此句得到一个string,可以直接赋值给asp中的控件 --------------------编程问答--------------------
引用 1 楼 tangdunfeng 的回复:
可以直接参考sqlhelper

sqlhelper这个类我们开发也一直使用。楼主可以参考一下。 --------------------编程问答--------------------
引用 2 楼 bkinside 的回复:
在aspx.cs中
 一、新建数据库类对象
 DataBase db=new DataBase ("你的连接字符串",dbType.sql);
 二、调用DataBase里面的方法,举个例子
 this.Label1.Text = db.getValue("这里是你的sql语句");   此句得到一个string,可以直接赋值给asp中的控件

是可以这么用。
确定你的项目中是否真的同时会使用Access和SQL Server?如果不是,请直接针对一种数据库写好了,因为你这种写法实在太臃肿了。 --------------------编程问答-------------------- 数据库操作类sqlhelper
看看petshop
DataSet ds=new DataSet();
if(ds.Tables[0].Rows.Count>0)
{
this.textbox1.Text=ds.Tables[0].Rows[0][""].ToString();
}
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,