日期:2014-05-18  浏览次数:20462 次

数据库访问层问题
请问大侠们现在数据库访问层怎样实现都,谁有比较完善的是否可以可以共享下。

------解决方案--------------------
引用其dll文件

现在添加引用里增加对应的dll文件,
然后在你应用的类里引用其命名空间即可访问到对应的类下的具体方法等。
------解决方案--------------------
只要简化你原来的代码,不要重复写代码,任何做法都是好的。如果为了分层而分层,仅仅为了把代码换个class或者命名空间重新写一遍的那种分层,就免了。
------解决方案--------------------
用动软生成一个就知道怎么用了。
------解决方案--------------------
搜索关键字:SqlHelper

我觉得这个SqlHelper数据库访问类功能较为强大,一般的数据库访问都能解决,而且可以扩充其功能。
------解决方案--------------------
探讨
只要简化你原来的代码,不要重复写代码,任何做法都是好的。如果为了分层而分层,仅仅为了把代码换个class或者命名空间重新写一遍的那种分层,就免了。

------解决方案--------------------
简化代码为目的
------解决方案--------------------
使用sqlHelper,它帮你封装了基本的数据库操作
------解决方案--------------------
private static readonly string ConnctionStr = ConfigurationManager.AppSettings["DataStr"];
static SqlConnection con = new SqlConnection(ConnctionStr);
private static void open()
{
if (con.State == ConnectionState.Closed)
{
try
{
con.Open();
}
catch { };
}
}
private static void close()
{
if (con.State == ConnectionState.Open)
{
try
{
con.Close();
}
catch { };
}
}
private static void precommand(SqlCommand cmd, string cmdtext, CommandType type, SqlParameter[] paramlist)
{
open();
cmd.Connection=con;
cmd.CommandText = cmdtext;
cmd.CommandType = type;
if (paramlist != null)
{
foreach (SqlParameter param in paramlist)
{
cmd.Parameters.Add(param);
}
}
}
public static int ExecuteNonQuery(string cmdText, CommandType type, SqlParameter[] paramlist)
{
return preExecuteNonQuery(cmdText, type, paramlist);
}
public static int ExecuteNonQuery(string cmdText, CommandType type)
{
return preExecuteNonQuery(cmdText, type, null);
}
private static int preExecuteNonQuery(string cmdText, CommandType type, SqlParameter[] paramlist)
{
SqlCommand cmd = new SqlCommand();
if (paramlist != null)
{
precommand(cmd, cmdText, type, paramlist);
}
else
{
precommand(cmd, cmdText, type, null);
}
int num = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
close();
return num;
}

public static object ExecuteScalar(string cmdText, CommandType type, SqlParameter[] paramlist)
{
return preExecuteScalar(cmdText, type, paramlist);
}
public static object ExecuteScalar(string cmdText, CommandType type)
{
return preExecuteScalar(cmdText, type, null);
}
private static object preExecuteScalar(string cmdText, CommandType type, SqlParameter[] paramlist)
{
SqlCommand cmd = new SqlCommand();
if (paramlist != null)
{
precommand(cmd, cmdText, type, paramlist);
}
else
{