C#三层架构中如何公用连接数据库和增删改查等功能
把连接数据库字符串和增删改查等SQL语名写在一个类里面,调用。那么这个类是属于哪个层的,如何去写啊???...
把连接数据库字符串和增删改查等SQL语名写在一个类里面,调用。那么这个类是属于哪个层的,如何去写啊???
展开
5个回答
展开全部
既然是3层架构了
那么数据访问就一定要交给数据层了
也就是说所有与数据库打交道的方法都写在数据层,表现层和业务层都不会使用到数据库连接字符串。而且我一般把链接字符串写在配置文件里(web.config)
<connectionStrings>
<add name="YourString" connectionString="?????"
providerName="System.Data.SqlClient" />
</connectionStrings>
该节点存在于<configuration>中 在访问的时候使用ConfigurationManager.ConnectionStrings["YourString"].ConnectionString 访问此链接字符串
那么数据访问就一定要交给数据层了
也就是说所有与数据库打交道的方法都写在数据层,表现层和业务层都不会使用到数据库连接字符串。而且我一般把链接字符串写在配置文件里(web.config)
<connectionStrings>
<add name="YourString" connectionString="?????"
providerName="System.Data.SqlClient" />
</connectionStrings>
该节点存在于<configuration>中 在访问的时候使用ConfigurationManager.ConnectionStrings["YourString"].ConnectionString 访问此链接字符串
展开全部
namespace DBUtility
{
public abstract class DbHelperSQL
{
private static DbConnection objConnection;
private static DbCommand objCommand;
private static DbProviderFactory objFactory = null;
private static bool boolHandleErrors;
private static string strLastError;
private static bool boolLogError;
private static string strLogFile;
static DbHelperSQL()
{
string strConnectionString = ConfigurationManager.ConnectionStrings["conn_Config"].ConnectionString;
string providername = ConfigurationManager.ConnectionStrings["conn_Config"].ProviderName;
switch (providername)
{
case "System.Data.SqlClient":
objFactory = SqlClientFactory.Instance;
break;
case "System.Data.OleDb":
objFactory = OleDbFactory.Instance;
break;
case "System.Data.OracleClient":
objFactory = OracleClientFactory.Instance;
break;
case "System.Data.Odbc":
objFactory = OdbcFactory.Instance;
break;
}
objConnection = objFactory.CreateConnection();
objCommand = objFactory.CreateCommand();
objConnection.ConnectionString = strConnectionString;
objCommand.Connection = objConnection;
}
数据访问层
{
public abstract class DbHelperSQL
{
private static DbConnection objConnection;
private static DbCommand objCommand;
private static DbProviderFactory objFactory = null;
private static bool boolHandleErrors;
private static string strLastError;
private static bool boolLogError;
private static string strLogFile;
static DbHelperSQL()
{
string strConnectionString = ConfigurationManager.ConnectionStrings["conn_Config"].ConnectionString;
string providername = ConfigurationManager.ConnectionStrings["conn_Config"].ProviderName;
switch (providername)
{
case "System.Data.SqlClient":
objFactory = SqlClientFactory.Instance;
break;
case "System.Data.OleDb":
objFactory = OleDbFactory.Instance;
break;
case "System.Data.OracleClient":
objFactory = OracleClientFactory.Instance;
break;
case "System.Data.Odbc":
objFactory = OdbcFactory.Instance;
break;
}
objConnection = objFactory.CreateConnection();
objCommand = objFactory.CreateCommand();
objConnection.ConnectionString = strConnectionString;
objCommand.Connection = objConnection;
}
数据访问层
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
属于数据层,C#2008中你可以直接用数据实体功能,向导会根据你的数据库自动创建这个ORM
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
属于数据链路层
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
放到数据访问层,即DALC
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询