我对编写类不太熟,请教大家如何写一个数据访问层的类,要求select语句要能根据不同条件重新定义
并传回的不同的dataTable ?
并传回的不同的dataTable ?
解决方案 »
- 求C#完成端口编程学习资料(最好有完整的例子)
- XmlDocument.Load("c:\1.xml") 打开时编码问题,如果1.xml是asc格式文件 含有中文,打开就有错误 怎么解决
- 如何在C#应用程序的TreeView中的节点上加图标。
- 怎么用winrar解压缩我的rar文件
- C#中有没有一个窗体最小化的事件呢,我想在当前窗体最小化的时候执行某一动作
- 大家试试.这段程序有运行起来效果有点怪
- WEB编程DataGrid中超链接字段的问题
- SqlDataAdapter与SqlCommand得区别
- 在IE中不能打开.vsdisco文件,高手请帮忙
- 哪里有支持C#、Crystal Report的虚拟主机
- 请问能否防止WINDOWS的后台服务程序在管理工具的服务中被停止,暂停或者删除
- vs2005中除了用clickonce部署外有没有别的安装程序部署
namespace ...
{
public class DBAgent
{
private MySqlConnection m_aConn;
private MySqlCommand m_aCmd;
private MySqlDataAdapter m_aAdpt; public DBAgent()
{
m_aConn = new MySqlConnection();
m_aCmd = new MySqlCommand();
m_aAdpt = new MySqlDataAdapter(); string connectionString = ...;
m_aConn.ConnectionString = connectionString;
this.m_aCmd.Connection = this.m_aConn;
this.m_aAdpt.SelectCommand = this.m_aCmd;
this.m_aConn.Open();
} public DataTable ExeQuery(string strSql)
{
try
{
Monitor.Enter(this.m_aConn);
this.m_aCmd.CommandText = strSql + ";";
DataTable dtResult = new DataTable();
this.m_aAdpt.Fill(dtResult);
Monitor.Exit(this.m_aConn);
return dtResult;
}
catch (Exception x)
{
System.Windows.Forms.MessageBox.Show(...);
Monitor.Exit(this.m_aConn);
throw x;
}
}
}
}
using System.Data;
using System.Data.SqlClient;
using System.Configuration;namespace pcate
{
public class DBOClass
{
public DBOClass()
{
}
//大量读、绑定数据(取得SQL语句)
public static SqlDataReader localdata(string localsql)
{
SqlConnection localcnn = new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
try
{
localcnn.Open();
SqlCommand localcmd=new SqlCommand(localsql,localcnn);
SqlDataReader localdr=localcmd.ExecuteReader(CommandBehavior.CloseConnection);
return localdr;
}
catch (Exception ex)
{
throw (ex);
}
finally
{
//localcnn.Close();
}
}
public static SqlDataReader localdata(string localsql,int P_count,int P_Size,string host,string order)
{
SqlConnection localcnn = new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
try
{
localcnn.Open();
SqlCommand localcmd=new SqlCommand("spAll_ReturnRows",localcnn);
localcmd.CommandType = CommandType.StoredProcedure;
localcmd.Parameters.Add("@SQL",localsql);
localcmd.Parameters.Add("@Page",P_count);
localcmd.Parameters.Add("@RecsPerPage",P_Size);
localcmd.Parameters.Add("@ID",host);
localcmd.Parameters.Add("@Sort",order);
SqlDataReader localdr=localcmd.ExecuteReader(CommandBehavior.CloseConnection);
return localdr;
}
catch (Exception ex)
{
throw (ex);
}
finally
{
//localcnn.Close();
}
}
//读单条数据(取得SQL语句)
public static DataTable localfill(string localsql)
{
SqlConnection localcnn = new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
try
{
localcnn.Open();
SqlDataAdapter da=new SqlDataAdapter(localsql,localcnn);
DataSet localds=new DataSet();
da.Fill(localds);
return localds.Tables[0];
}
catch (Exception ex)
{
throw (ex);
}
finally
{
localcnn.Close();
}
}
...
}
SqlAdapter sa=new SqlAdapter(connstr);
DataSet ds=new DataSet();
da.Fill(ds,"table");
被绑定对象.DataSource=ds.Tables["table"];
{
public DataTable imedata(string sqlcmd)
{
OleDbConnection strconnection=new OleDbConnection ("provider=microsoft.jet.oledb.4.0; data source=" + Server.MapPath("./" + "//access//image.mdb"));
try
{
OleDbDataAdapter da = new OleDbDataAdapter(sqlcmd, strconnection);
DataTable dt = new DataTable("image"); da.Fill(dt);
return dt;
}
finally
{
strconnection.Close();
} } }
如上代码,我这样写可以吗?如何引用呢?mydata md=new mydata(); md.imadata("select...."); 吗?好象不行啊
然后在业务逻辑或显示层引用。