数据连接层怎么写啊? 在ASP.NET中数据连接层不知道怎么写了,麻烦源代码........ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看微软企业库DbProviderFactory objProviderFactory = DbProviderFactories.GetFactory(objConnectionSettings.ProviderName);using (DbConnection objConnection = objProviderFactory.CreateConnection()){} 可以看看 微软的开源项目 petshop 前面的弄了这么规范的设计模式...吓到了我就只是写了个 sqlutil 类.......... 只要懂得使用ADO,这些东西完全可以自己实现了,楼主自己要思考下,不要局限于某某框架。 动软生成器或者codesmith三层都可以自动生成... using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;namespace com.accp.QZoneDAL{ public class DBHelp { //连接字符串 public static string GetString() { return @"server=.;database=QQzone;uid=sa;pwd=123;"; } //添,删,改 public static bool RunSQL(string sql) { //创建连接 SqlConnection conn = new SqlConnection(GetString()); //打开 conn.Open(); //创建命令对象 SqlCommand cmd=new SqlCommand(sql,conn); int count=cmd.ExecuteNonQuery(); if (count > 0) { return true; } else { return false; } } //查询 public static DataTable Select(string sql) { //创建适配器 SqlDataAdapter da = new SqlDataAdapter(sql, GetString()); //加工适配器 SqlCommandBuilder cb = new SqlCommandBuilder(da); //创建空表 DataTable dt = new DataTable(); //填充表 da.Fill(dt); return dt; } }}我经常用的,连接字符串自己可以改成调用webconfig的,或者要连接的IP和数据库 数据的连接不是一般都写在config文件中么。数据访层就写相关的方法么,最多也就再也个公共的DBHelper类 给你个现成的 好用的话把分给我 public static DataSet Query(string SQLString) { using (SqlConnection connection = new SqlConnection(connectionString)) { DataSet ds = new DataSet(); try { connection.Open(); SqlDataAdapter command = new SqlDataAdapter(SQLString, connection); command.Fill(ds, "ds"); } catch (System.Data.SqlClient.SqlException ex) { throw new Exception(ex.Message); } return ds; } } public static DataSet Query(string SQLString, int Times) { using (SqlConnection connection = new SqlConnection(connectionString)) { DataSet ds = new DataSet(); try { connection.Open(); SqlDataAdapter command = new SqlDataAdapter(SQLString, connection); command.SelectCommand.CommandTimeout = Times; command.Fill(ds, "ds"); } catch (System.Data.SqlClient.SqlException ex) { throw new Exception(ex.Message); } return ds; } } 很久以前,我认为钱是浮云不必太较真!等我没钱的时候发现:钱不是浮云!来到CSDN我认为分是浮云,不必太在意!当我发帖没分的时候:分也不是浮云! 数据连接层?lz,数据操作层吧,连接在config中就可以设置了 web.config里面就这样写<connectionStrings> <add name="ConnectionString" connectionString="data source=数据库服务器;uid=用户名;pwd=密码;database=数据库名" providerName="System.Data.SqlClient"/> </connectionStrings>程序里面就是: private static SqlConnection conn; public static SqlConnection Conn { get { string connstr = ConfigurationManager.ConnectionStrings["myOffice"].ConnectionString; if (conn == null) { conn = new SqlConnection(connstr); conn.Open(); } if (ConnectionState.Closed == conn.State) { conn.Open(); } if (ConnectionState.Broken == conn.State) { conn.Close(); conn.Open(); } return conn; } } web.config里面就这样写<connectionStrings><add name="ConnectionString" connectionString="data source=数据库服务器;uid=用户名;pwd=密码;database=数据库名" providerName="System.Data.SqlClient"/></connectionStrings>程序里面就是: private static SqlConnection conn; public static SqlConnection Conn { get { string connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; if (conn == null) { conn = new SqlConnection(connstr); conn.Open(); } if (ConnectionState.Closed == conn.State) { conn.Open(); } if (ConnectionState.Broken == conn.State) { conn.Close(); conn.Open(); } return conn; } } using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;/// <summary>/// DBHelper 的摘要说明/// </summary>public static class DBHelper{ //public DBHelper() //{ // // // // TODO: 在此处添加构造函数逻辑 // // //} //连接对象 private static SqlConnection connection; public static SqlConnection Connection { get { //获取连接字符串 string connectionString = ConfigurationManager.ConnectionStrings["DefaultDBConnString"].ConnectionString; //判断连接是否为空,如果为空就new 对象并打开连接 if (connection == null) { connection = new SqlConnection(connectionString); connection.Open(); } //如果连接关闭就打开链接 else if (connection.State == System.Data.ConnectionState.Closed) { connection.Open(); } //如果连接断开,就先关闭再打开链接 else if (connection.State == System.Data.ConnectionState.Broken) { connection.Close(); connection.Open(); } return connection; } } /// <summary> /// 针对增删改的方法,(无参数) /// </summary> /// <param name="safeSql"></param> /// <returns></returns> public static int ExecuteCommand(string safeSql) { SqlCommand cmd = new SqlCommand(safeSql, Connection); int result = cmd.ExecuteNonQuery(); return result; } /// <summary> /// 针对增删改的方法,(有一个参数) /// </summary> /// <param name="sql"></param> /// <param name="values"></param> /// <returns></returns> public static int ExecuteCommand(string sql, SqlParameter values) { SqlCommand cmd = new SqlCommand(sql, Connection); cmd.Parameters.Add(values); return cmd.ExecuteNonQuery(); } /// <summary> /// 针对增删改的方法,(有参数) /// </summary> /// <param name="sql"></param> /// <param name="values"></param> /// <returns></returns> public static int ExecuteCommand(string sql, params SqlParameter[] values) { SqlCommand cmd = new SqlCommand(sql, Connection); cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery(); } /// <summary> /// 执行查询,返回一行一列的记录 /// </summary> /// <param name="safeSql"></param> /// <returns></returns> public static int GetScalar(string safeSql) { SqlCommand cmd = new SqlCommand(safeSql, Connection); int result = Convert.ToInt32(cmd.ExecuteScalar()); return result; } public static string GetScalar1(string safeSql) { SqlCommand cmd = new SqlCommand(safeSql, Connection); string result = Convert.ToString(cmd.ExecuteScalar()); return result; } public static string GetScalar1(string safeSql, params SqlParameter[] values) { SqlCommand cmd = new SqlCommand(safeSql, Connection); cmd.Parameters.AddRange(values); string result = Convert.ToString(cmd.ExecuteScalar()); return result; } /// <summary> /// 执行查询,返回一行一列的记录 /// </summary> /// <param name="values"></param> /// <returns></returns> public static int GetScalar(params SqlParameter[] values) { SqlCommand cmd = new SqlCommand(); cmd.Connection = Connection; cmd.CommandText = "Pro_InsertOrder"; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddRange(values); int result = Convert.ToInt32(cmd.ExecuteScalar()); return result; } /// <summary> /// 执行查询,返回一行一列的记录(有参数) /// </summary> /// <param name="sql"></param> /// <param name="values"></param> /// <returns></returns> public static int GetScalar(string sql, params SqlParameter[] values) { SqlCommand cmd = new SqlCommand(sql, Connection); cmd.Parameters.AddRange(values); object result = cmd.ExecuteScalar() ; if (result is DBNull) { return 0; } else { return Convert.ToInt32(result); } } /// <summary> /// 执行查询方法(一行一行读取) /// </summary> /// <param name="safeSql"></param> /// <returns></returns> public static SqlDataReader GetReader(string safeSql) { SqlCommand cmd = new SqlCommand(safeSql, Connection); SqlDataReader reader = cmd.ExecuteReader(); return reader; } /// <summary> /// 执行查询方法(一行一行读取) (有参数) /// </summary> /// <param name="sql"></param> /// <param name="values"></param> /// <returns></returns> public static SqlDataReader GetReader(string sql, params SqlParameter[] values) { SqlCommand cmd = new SqlCommand(sql, Connection); cmd.Parameters.AddRange(values); SqlDataReader reader = cmd.ExecuteReader(); return reader; } /// <summary> /// 执行查询方法,返回集合 /// </summary> /// <param name="safeSql"></param> /// <returns></returns> public static DataTable GetDataSet(string safeSql) { DataSet ds = new DataSet(); SqlCommand cmd = new SqlCommand(safeSql, Connection); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); return ds.Tables[0]; } /// <summary> /// 执行查询方法,返回集合(有参数) /// </summary> /// <param name="sql"></param> /// <param name="values"></param> /// <returns></returns> public static DataTable GetDataSet(string sql, params SqlParameter[] values) { DataSet ds = new DataSet(); SqlCommand cmd = new SqlCommand(sql, Connection); cmd.Parameters.AddRange(values); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); return ds.Tables[0]; }} 我怎么在web页面上弹出 保存对话框啊? CSDN~~~迷糊····这种异常都没处理? 用户控件 HyperLink的前台调用变量问题 请教datalist中删除选中行问题,急```` 急!!!!用vs.net2003开发的asp.net项目如何发布到网上的虚拟空间? 求救!!!!!!!!!!!!!! 求asp.net写的留言本、上传..之类的小程序!! 求教iframe嵌入SVG文件问题 服务器端控件闪烁问题!讨论!!欢迎高手 C#超级难题,大家来救急。。。 关于三层架构中对数据操作的封装问题
DbProviderFactory objProviderFactory = DbProviderFactories.GetFactory(objConnectionSettings.ProviderName);
using (DbConnection objConnection = objProviderFactory.CreateConnection())
{}
我就只是写了个 sqlutil 类..........
using System.Collections.Generic;
using System.Text;using System.Data;
using System.Data.SqlClient;
namespace com.accp.QZoneDAL
{
public class DBHelp
{
//连接字符串
public static string GetString()
{
return @"server=.;database=QQzone;uid=sa;pwd=123;";
} //添,删,改
public static bool RunSQL(string sql)
{
//创建连接
SqlConnection conn = new SqlConnection(GetString());
//打开
conn.Open();
//创建命令对象
SqlCommand cmd=new SqlCommand(sql,conn);
int count=cmd.ExecuteNonQuery();
if (count > 0)
{
return true;
}
else
{
return false;
}
} //查询
public static DataTable Select(string sql)
{
//创建适配器
SqlDataAdapter da = new SqlDataAdapter(sql, GetString()); //加工适配器
SqlCommandBuilder cb = new SqlCommandBuilder(da); //创建空表
DataTable dt = new DataTable();
//填充表
da.Fill(dt); return dt;
}
}
}我经常用的,连接字符串自己可以改成调用webconfig的,或者要连接的IP和数据库
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
public static DataSet Query(string SQLString, int Times)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.SelectCommand.CommandTimeout = Times;
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
不必太较真!等我没钱的时候发现:钱不是浮云!
来到CSDN我认为分是浮云,
不必太在意!当我发帖没分的时候:分也不是浮云!
lz,数据操作层吧,
连接在config中就可以设置了
<connectionStrings>
<add name="ConnectionString" connectionString="data source=数据库服务器;uid=用户名;pwd=密码;database=数据库名" providerName="System.Data.SqlClient"/>
</connectionStrings>
程序里面就是: private static SqlConnection conn; public static SqlConnection Conn
{
get
{
string connstr = ConfigurationManager.ConnectionStrings["myOffice"].ConnectionString;
if (conn == null)
{
conn = new SqlConnection(connstr);
conn.Open();
}
if (ConnectionState.Closed == conn.State)
{
conn.Open();
}
if (ConnectionState.Broken == conn.State)
{
conn.Close();
conn.Open();
}
return conn; } }
<connectionStrings>
<add name="ConnectionString" connectionString="data source=数据库服务器;uid=用户名;pwd=密码;database=数据库名" providerName="System.Data.SqlClient"/>
</connectionStrings>
程序里面就是: private static SqlConnection conn; public static SqlConnection Conn
{
get
{
string connstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
if (conn == null)
{
conn = new SqlConnection(connstr);
conn.Open();
}
if (ConnectionState.Closed == conn.State)
{
conn.Open();
}
if (ConnectionState.Broken == conn.State)
{
conn.Close();
conn.Open();
}
return conn; } }
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;using System.Data.SqlClient;/// <summary>
/// DBHelper 的摘要说明
/// </summary>
public static class DBHelper
{
//public DBHelper()
//{
// //
// // TODO: 在此处添加构造函数逻辑
// //
//}
//连接对象
private static SqlConnection connection;
public static SqlConnection Connection
{
get
{
//获取连接字符串
string connectionString = ConfigurationManager.ConnectionStrings["DefaultDBConnString"].ConnectionString;
//判断连接是否为空,如果为空就new 对象并打开连接
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
//如果连接关闭就打开链接
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
//如果连接断开,就先关闭再打开链接
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}
/// <summary>
/// 针对增删改的方法,(无参数)
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
public static int ExecuteCommand(string safeSql)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
int result = cmd.ExecuteNonQuery();
return result;
}
/// <summary>
/// 针对增删改的方法,(有一个参数)
/// </summary>
/// <param name="sql"></param>
/// <param name="values"></param>
/// <returns></returns>
public static int ExecuteCommand(string sql, SqlParameter values)
{
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.Add(values);
return cmd.ExecuteNonQuery();
}
/// <summary>
/// 针对增删改的方法,(有参数)
/// </summary>
/// <param name="sql"></param>
/// <param name="values"></param>
/// <returns></returns>
public static int ExecuteCommand(string sql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
return cmd.ExecuteNonQuery();
}
/// <summary>
/// 执行查询,返回一行一列的记录
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
public static int GetScalar(string safeSql)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}
public static string GetScalar1(string safeSql)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
string result = Convert.ToString(cmd.ExecuteScalar());
return result;
} public static string GetScalar1(string safeSql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
cmd.Parameters.AddRange(values);
string result = Convert.ToString(cmd.ExecuteScalar());
return result;
}
/// <summary>
/// 执行查询,返回一行一列的记录
/// </summary>
/// <param name="values"></param>
/// <returns></returns>
public static int GetScalar(params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = Connection;
cmd.CommandText = "Pro_InsertOrder";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(values);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}
/// <summary>
/// 执行查询,返回一行一列的记录(有参数)
/// </summary>
/// <param name="sql"></param>
/// <param name="values"></param>
/// <returns></returns>
public static int GetScalar(string sql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
object result = cmd.ExecuteScalar() ;
if (result is DBNull)
{
return 0;
}
else
{
return Convert.ToInt32(result);
}
}
/// <summary>
/// 执行查询方法(一行一行读取)
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string safeSql)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}
/// <summary>
/// 执行查询方法(一行一行读取) (有参数)
/// </summary>
/// <param name="sql"></param>
/// <param name="values"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}
/// <summary>
/// 执行查询方法,返回集合
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
public static DataTable GetDataSet(string safeSql)
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(safeSql, Connection);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
/// <summary>
/// 执行查询方法,返回集合(有参数)
/// </summary>
/// <param name="sql"></param>
/// <param name="values"></param>
/// <returns></returns>
public static DataTable GetDataSet(string sql, params SqlParameter[] values)
{
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql, Connection);
cmd.Parameters.AddRange(values);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}}