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中的控件 --------------------编程问答--------------------
sqlhelper这个类我们开发也一直使用。楼主可以参考一下。 --------------------编程问答--------------------
是可以这么用。
确定你的项目中是否真的同时会使用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