sqlhelperpb如何连接sql数据库数据库?

sqlhelper用法
Ⅰ.引言
&&&&&&&使用该类目的就是让使用者更方便、更安全的对数据库的操作,既是除了在SQLHelper类以外的所有类将不用引用对数据库操作的任何类与语句,无须担心数据库的连接与关闭的问题。但是,该类仍然需要大量的调试与修改。故此,请使用者不断完善该类,以至于能与SQLHelper(.NET版)的功能并驾齐驱。
Ⅱ.注意事项
原文地址:
1.使用前设置
手动修改以下代码段为当前连接数据库的代码段
private static Connection getConnect() {
&&&&&&&&&&&&&&
//修改代码段
} catch (Exception e) {
&&&&&&&&&&&&&&
2. SQLHelper类支持数据库字段类型
1)文本类型
2)带符号整数类型
3)双精度浮点数类型
4)日期类型
注意:如果没有想要的类时,请手动添加到以下方法内
private static void prepareCommand(PreparedStatement pstmt,
String[] parms)
throws Exception {
另外,添加时请注意“从特殊到常用”原则,即将最特殊的类型放到try/catch语句的最高级的代码段区,将最常用的类型放到try/catch语句的最低级的代码段区。
Ⅲ.类方法说明
&&&&&&&注意:正文内出现“【】”的区域在使用的时候必须进行相应替换,而“『』”的区域为替换的可选项。
1.SQLHelper.ExecuteNonQuery
&&&&&&&作用:用于执行语句
&&&&&&&返回类型:int
&&&&&&&格式:
&&&&&&&&&&&&&
boolean state =
&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
String[] parms = {【参数区(如果类型为非String型,则"" +&变量)】};
&&&&&&&&&&&&&&&&&&&&
int i = SQLHelper.ExecuteNonQuery(【SQL语句】, parms『可为null』);
&&&&&&&&&&&&&&&&&&&&
if (i == 1) {
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&
} catch (Exception e) {
&&&&&&&&&&&&&&&&&&&&
e.printStackTrace();
&&&&&&&&&&&&&
&&&&&&&&&&&&&
SQLHelper.ExecuteScalar
&&&&&&&作用:用于获取单字段值语句
&&&&&&&返回类型:Object
&&&&&&&格式:
&&&&&&&&&&&&&&【变量类型】&【变量】&=&【初始化变量】
&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
String[] parms = {&【参数区(如果类型为非String型,则"" +&变量)】};
&&&&&&&&&&&&&&&&&&&&&【变量】&=&『强制转换为变量的类型』SQLHelper.ExecuteScalar(【SQL语句】,&【列名或列名索引】,
parms『可为null』)
&&&&&&&&&&&&&&&&&&&&
.toString();
&&&&&&&&&&&&&
} catch (Exception e) {
&&&&&&&&&&&&&&&&&&&&
e.printStackTrace();
&&&&&&&&&&&&&
&&&&&&&&&&&&&
return&【变量】;
SQLHelper.ExecuteReader
作用:用于获取结果集语句
返回类型:java.util.ArrayList
ArrayList al = new ArrayList();
&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
String[] parms = {&【参数区(如果类型为非String型,则"" +&变量)】};
&&&&&&&&&&&&&&&&&&&&
al = SQLHelper.ExecuteReader(【SQL语句】, parms『可为null』);
&&&&&&&&&&&&&&&&&&&&
al = getArrayListValues(al);
&&&&&&&&&&&&&
} catch (Exception e) {
&&&&&&&&&&&&&&&&&&&&
errMessage = e.toString();
&&&&&&&&&&&&&
&&&&&&&&&&&&&
&&&&&&&另外,添加以下两个函数:
//根据结果集获取其全部信息
private ArrayList getArrayListValues(ArrayList arrayList) throws
Exception {
&&&&&&&&&&&&&
ArrayList al2 = new ArrayList();
&&&&&&&&&&&&&
for (int i = 0; i & arrayList.size(); i++) {
&&&&&&&&&&&&&&&&&&&&
al2.add(getOneRowValues(i, new&【最终存放数据的变量类型】, arrayList));
&&&&&&&&&&&&&
&&&&&&&&&&&&&
return al2;
//根据行索引,获取其一行的所有信息
private TbUserBLL getOneRowValues(int
i,&【最终存放数据的变量类型】【最终存放数据的变量】, ArrayList
arrayList) throws Exception {
&&&&&&&&&&&&&
Object[] ob = (Object[]) arrayList.get(i);
&&&&&&&&&&&&&&【最终存放数据的变量】.setXX=『强制转换为其属性类型』ob[0].toString();
&&&&&&&&&&&&&
&&&&&&&&&&&&&&【最终存放数据的变量】.setXX=『强制转换为其属性类型』ob[X].toString();&
&&&&&&&&&&&&&
return【最终存放数据的变量】;
Ⅳ.测试列表
&&&&&&&注意:如果再对该类进行测试时,请按以下格式添加说明。
&&&&&&&连接数据库方式:jdbc-odbc桥
&&&&&&&使用数据库:Access
&&&&&&&测试内容:对SQLHelper各方法的使用情况测试
&&&&&&&测试人员:刘冀超
&&&&&&&测试结果:成功。
Ⅴ.测试工具说明
1.数据库表
TbUser【用户表】
tbUserName
varchar(20)
varchar(20)
tbUserRole
2.测试页面(Index.jsp)
&&&&&&&说明:该页面包含了所有间接调用SQLHelper所提供的方法(即ExecuteNonQuery,ExecuteScalar,ExecuteReader)。如有需要请再以下标签前添加功能,
&&&&&td&align="center"&class="STYLE3"&测试结果&/td&
并按照内部格式将错误信息放入errMessage的变量内。
package&com.
import&javax.sql.DataS
import&javax.naming.*;
import&java.sql.C
import&java.sql.PreparedS
import&java.sql.ResultS
import&java.util.*;
import&java.sql.*;
public&abstract&class&SQLHelper&{
&&&&private&static&Connection&getConnect()&{
&&&&&&&&try&{
&&&&&&&&&&&&
&&&&&&&&&&&&InitialContext&context&=&new&InitialContext();
&&&&&&&&&&&&DataSource&ds&=&(DataSource)&context.lookup("java:/MSAccessDS");
&&&&&&&&&&&&
&&&&&&&&&&&&return&ds.getConnection();
&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&return&null;
&&&&public&static&int&ExecuteNonQuery(String&cmdtext,&String[]&parms)
&&&&throws&Exception&{
&&&&&&&&PreparedStatement&pstmt&=&null;
&&&&&&&&Connection&conn&=&null;
&&&&&&&&try&{
&&&&&&&&&&&&conn&=&getConnect();
&&&&&&&&&&&&pstmt&=&conn.prepareStatement(cmdtext);
&&&&&&&&&&&&prepareCommand(pstmt,&parms);
&&&&&&&&&&&&
&&&&&&&&&&&&return&pstmt.executeUpdate();
&&&&&&&&&&&&
&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&throw&new&Exception("executeNonQuery方法出错:"&+&e.getMessage());
&&&&&&&&}&finally&{
&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&if&(pstmt&!=&null)
&&&&&&&&&&&&&&&&&&&&pstmt.close();
&&&&&&&&&&&&&&&&if&(conn&!=&null)
&&&&&&&&&&&&&&&&&&&&conn.close();
&&&&&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&&&&&throw&new&Exception("执行executeNonQuery方法出错:"&+&e.getMessage());
&&&&&&&&&&&&}
&&&&public&static&ArrayList&ExecuteReader(String&cmdtext,&String[]&parms)
&&&&throws&Exception&{
&&&&&&&&PreparedStatement&pstmt&=&null;
&&&&&&&&Connection&conn&=&null;
&&&&&&&&try&{
&&&&&&&&&&&&conn&=&getConnect();
&&&&&&&&&&&&
&&&&&&&&&&&&pstmt&=&conn.prepareStatement(cmdtext);
&&&&&&&&&&&&
&&&&&&&&&&&&prepareCommand(pstmt,&parms);
&&&&&&&&&&&&ResultSet&rs&=&pstmt.executeQuery();
&&&&&&&&&&&&
&&&&&&&&&&&&ArrayList&al&=&new&ArrayList();
&&&&&&&&&&&&ResultSetMetaData&rsmd&=&rs.getMetaData();
&&&&&&&&&&&&int&column&=&rsmd.getColumnCount();
&&&&&&&&&&&&
&&&&&&&&&&&&while&(rs.next())&{
&&&&&&&&&&&&&&&&Object[]&ob&=&new&Object[column];
&&&&&&&&&&&&&&&&for&(int&i&=&1;&i&&=&&i++)&{
&&&&&&&&&&&&&&&&&&&&ob[i&-&1]&=&rs.getObject(i);
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&al.add(ob);
&&&&&&&&&&&&}
&&&&&&&&&&&&
&&&&&&&&&&&&rs.close();
&&&&&&&&&&&&return&
&&&&&&&&&&&&
&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&throw&new&Exception("executeSqlResultSet方法出错:"&+&e.getMessage());
&&&&&&&&}&finally&{
&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&if&(pstmt&!=&null)
&&&&&&&&&&&&&&&&&&&&pstmt.close();
&&&&&&&&&&&&&&&&if&(conn&!=&null)
&&&&&&&&&&&&&&&&&&&&conn.close();
&&&&&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&&&&&throw&new&Exception("executeSqlResultSet方法出错:"&+&e.getMessage());
&&&&&&&&&&&&}
&&&&public&static&Object&ExecuteScalar(String&cmdtext,&String&name,
&&&&&&&&&&&&String[]&parms)&throws&Exception&{
&&&&&&&&PreparedStatement&pstmt&=&null;
&&&&&&&&Connection&conn&=&null;
&&&&&&&&ResultSet&rs&=&null;
&&&&&&&&try&{
&&&&&&&&&&&&conn&=&getConnect();
&&&&&&&&&&&&
&&&&&&&&&&&&pstmt&=&conn.prepareStatement(cmdtext);
&&&&&&&&&&&&prepareCommand(pstmt,&parms);
&&&&&&&&&&&&
&&&&&&&&&&&&rs&=&pstmt.executeQuery();
&&&&&&&&&&&&if&(rs.next())&{
&&&&&&&&&&&&&&&&return&rs.getObject(name);
&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&return&null;
&&&&&&&&&&&&}
&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&throw&new&Exception("executeSqlObject方法出错:"&+&e.getMessage());
&&&&&&&&}&finally&{
&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&if&(rs&!=&null)
&&&&&&&&&&&&&&&&&&&&rs.close();
&&&&&&&&&&&&&&&&if&(pstmt&!=&null)
&&&&&&&&&&&&&&&&&&&&pstmt.close();
&&&&&&&&&&&&&&&&if&(conn&!=&null)
&&&&&&&&&&&&&&&&&&&&conn.close();
&&&&&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&&&&&throw&new&Exception("executeSqlObject方法出错:"&+&e.getMessage());
&&&&&&&&&&&&}
&&&&public&static&Object&ExecuteScalar(String&cmdtext,&int&index,&String[]&parms)
&&&&throws&Exception&{
&&&&&&&&PreparedStatement&pstmt&=&null;
&&&&&&&&Connection&conn&=&null;
&&&&&&&&ResultSet&rs&=&null;
&&&&&&&&try&{
&&&&&&&&&&&&conn&=&getConnect();
&&&&&&&&&&&&
&&&&&&&&&&&&pstmt&=&conn.prepareStatement(cmdtext);
&&&&&&&&&&&&prepareCommand(pstmt,&parms);
&&&&&&&&&&&&
&&&&&&&&&&&&rs&=&pstmt.executeQuery();
&&&&&&&&&&&&if&(rs.next())&{
&&&&&&&&&&&&&&&&return&rs.getObject(index);
&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&return&null;
&&&&&&&&&&&&}
&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&throw&new&Exception("executeSqlObject方法出错:"&+&e.getMessage());
&&&&&&&&}&finally&{
&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&if&(rs&!=&null)
&&&&&&&&&&&&&&&&&&&&rs.close();
&&&&&&&&&&&&&&&&if&(pstmt&!=&null)
&&&&&&&&&&&&&&&&&&&&pstmt.close();
&&&&&&&&&&&&&&&&if&(conn&!=&null)
&&&&&&&&&&&&&&&&&&&&conn.close();
&&&&&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&&&&&throw&new&Exception("executeSqlObject方法出错:"&+&e.getMessage());
&&&&&&&&&&&&}
&&&&private&static&void&prepareCommand(PreparedStatement&pstmt,&String[]&parms)
&&&&throws&Exception&{
&&&&&&&&try&{
&&&&&&&&&&&&if&(parms&!=&null)&{
&&&&&&&&&&&&&&&&for&(int&i&=&0;&i&&&parms.&i++)&{
&&&&&&&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&&&&&&&pstmt.setDate(i&+&1,&java.sql.Date.valueOf(parms[i]));
&&&&&&&&&&&&&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&pstmt
&&&&&&&&&&&&&&&&&&&&&&&&&&&&.setDouble(i&+&1,&Double
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.parseDouble(parms[i]));
&&&&&&&&&&&&&&&&&&&&&&&&}&catch&(Exception&e1)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&pstmt.setInt(i&+&1,&Integer.parseInt(parms[i]));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&catch&(Exception&e2)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&pstmt.setString(i&+&1,&parms[i]);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&catch&(Exception&e3)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&System.out
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.print("SQLHelper-PrepareCommand&Err1:"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+&e3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}
&&&&&&&&}&catch&(Exception&e1)&{
&&&&&&&&&&&&System.out.print("SQLHelper-PrepareCommand&Err2:"&+&e1);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。sqlhelper里面数据库连接要如何写才最好 - ASP.NET当前位置:& &&&sqlhelper里面数据库连接要如何写才最好sqlhelper里面数据库连接要如何写才最好&&网友分享于:&&浏览:10次sqlhelper里面数据库连接要怎么写才最好我现在才发现sqlhelper真的不是那么好写。大家能不能告诉下------解决方案--------------------没有最好。
------解决方案--------------------这个完全要看什么样的程序,只有最适合的,没有最好的。推荐借鉴socancode生成器生成的代码。
------解决方案--------------------第一,不能用静态的Connection,要用实例化的(new出来的);第二,提供2个重载,一个从应用程序配置文件中取连接字符串;另一个自定义(string型参数)。
------解决方案--------------------网上都有现成的,下下来自己再改良下就行了嘛
------解决方案--------------------sql实例:C# code
using System.Collections.G
using System.L
using System.T
using System.D
using System.Data.OleDb;
using System.C
using System.Data.SqlC
using System.Data.S
namespace WorkDAL
public class SqlHelper
/// 连接字符串
public static readonly string ConnectionString = ConfigurationSettings.AppSettings[&StrCon&].ToString();
SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings[&StrCon&].ToString());
//用于缓存参数的HASH表
//private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
/// &returns&执行命令所影响的行数&/returns&
public static int ExecuteNonQuery(SqlConnection connection, string cmdText, params SqlParameter[] commandParameters)
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
/// &summary&
/// 用执行的数据库连接执行一个返回数据集的sql命令
/// &/summary&
/// &remarks&
OleDbDataReader r = ExecuteReader(connString, &PublishOrders&, new OleDbParameter(&@prodid&, 24));
/// &/remarks&
/// &param name=&connectionString&&一个有效的连接字符串&/param&
/// &param name=&commandText&&存储过程名称或者sql命令语句&/param&
/// &param name=&commandParameters&&执行命令所用参数的集合&/param&
/// &returns&包含结果的读取器&/returns&
/// &summary&
/// 返回一个DataSet数据集
/// &/summary&
/// &param name=&connectionString&&一个有效的连接字符串&/param&
/// &param name=&cmdText&&存储过程名称或者sql命令语句&/param&
/// &param name=&commandParameters&&执行命令所用参数的集合&/param&
/// &returns&包含结果的数据集&/returns&
/// &summary&
/// 用指定的数据库连接字符串执行一个命令并返回一个数据集的第一列
/// &/summary&
/// &remarks&
Object obj = ExecuteScalar(connString, &PublishOrders&, new OleDbParameter(&@prodid&, 24));
/// &/remarks&
///&param name=&connectionString&&一个有效的连接字符串&/param&
/// &param name=&commandText&&存储过程名称或者sql命令语句&/param&
/// &param name=&commandParameters&&执行命令所用参数的集合&/param&
/// &returns&用 Convert.To{Type}把类型转换为想要的 &/returns&
public static object ExecuteScalar(string connectionString, string cmdText, params SqlParameter[] commandParameters)
SqlCommand cmd = new SqlCommand();
using (SqlConnection connection = new SqlConnection(connectionString))
PrepareCommand(cmd, connection, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
/// &summary&
/// 用指定的数据库连接执行一个命令并返回一个数据集的第一列
/// &/summary&
/// &remarks&
Object obj = ExecuteScalar(connString, &PublishOrders&, new OleDbParameter(&@prodid&, 24));
/// &/remarks&
/// &param name=&conn&&一个存在的数据库连接&/param&
/// &param name=&commandText&&存储过程名称或者sql命令语句&/param&
/// &param name=&commandParameters&&执行命令所用参数的集合&/param&
/// &returns&用 Convert.To{Type}把类型转换为想要的 &/returns&
public static object ExecuteScalar(SqlConnection connection, string cmdText, params SqlParameter[] commandParameters)
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
/// &summary&
/// 准备执行一个命令
/// &/summary&
/// &param name=&cmd&&sql命令&/param&
/// &param name=&conn&&Sql连接&/param&
/// &param name=&trans&&Sql事务&/param&
/// &param name=&cmdText&&命令文本,例如:Select * from Products&/param&
/// &param name=&cmdParms&&执行命令的参数&/param&
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, string cmdText, SqlParameter[] cmdParms)
//判断连接的状态。如果是关闭状态,则打开
if (conn.State != ConnectionState.Open)
conn.Open();
//cmd属性赋值
cmd.Connection =
mandText = cmdT
mandType = CommandType.T
//添加cmd需要的存储过程参数
if (cmdParms != null)
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
/// &summary&
/// 分页使用
/// &/summary&
/// &param name=&query&&&/param&
/// &param name=&passCount&&&/param&
/// &returns&&/returns&
private static string recordID(string query, int passCount)
using (SqlConnection m_Conn = new SqlConnection(ConnectionString))
m_Conn.Open();
SqlCommand cmd = new SqlCommand(query, m_Conn);
string result = string.E
using (SqlDataReader dr = cmd.ExecuteReader())
while (dr.Read())
if (passCount & 1)
result += &,& + dr.GetInt32(0);
passCount--;
m_Conn.Close();
m_Conn.Dispose();
return result.Substring(1);
/// &summary&
/// ACCESS高效分页
/// &/summary&
/// &param name=&pageIndex&&当前页码&/param&
/// &param name=&pageSize&&分页容量&/param&
/// &param name=&strKey&&主键&/param&
/// &param name=&showString&&显示的字段&/param&
/// &param name=&queryString&&查询字符串,支持联合查询&/param&
/// &param name=&whereString&&查询条件,若有条件限制则必须以where 开头&/param&
/// &param name=&orderString&&排序规则&/param&
/// &param name=&pageCount&&传出参数:总页数统计&/param&
/// &param name=&recordCount&&传出参数:总记录统计&/param&
/// &returns&装载记录的DataTable&/returns&
public static DataTable ExecutePager(int pageIndex, int pageSize, string strKey, string showString, string queryString, string whereString, string orderString, out int pageCount, out int recordCount)
if (pageIndex & 1) pageIndex = 1;
if (pageSize & 1) pageSize = 10;
if (string.IsNullOrEmpty(showString)) showString = &*&;
if (string.IsNullOrEmpty(orderString)) orderString = strKey + & asc &;
using (OleDbConnection m_Conn = new OleDbConnection(ConnectionString))
m_Conn.Open();
string myVw = string.Format(& ( {0} ) tempVw &, queryString);
OleDbCommand cmdCount = new OleDbCommand(string.Format(& select count(*) as recordCount from {0} {1}&, myVw, whereString), m_Conn);
recordCount = Convert.ToInt32(cmdCount.ExecuteScalar());
if ((recordCount % pageSize) & 0)
pageCount = recordCount / pageSize + 1;
pageCount = recordCount / pageS
OleDbCommand cmdR
if (pageIndex == 1)//第一页
cmdRecord = new OleDbCommand(string.Format(&select top {0} {1} from {2} {3} order by {4} &, pageSize, showString, myVw, whereString, orderString), m_Conn);
else if (pageIndex & pageCount)//超出总页数
cmdRecord = new OleDbCommand(string.Format(&select top {0} {1} from {2} {3} order by {4} &, pageSize, showString, myVw, &where 1=2&, orderString), m_Conn);
int pageLowerBound = pageSize * pageI
int pageUpperBound = pageLowerBound - pageS
string recordIDs = recordID(string.Format(&select top {0} {1} from {2} {3} order by {4} &, pageLowerBound, strKey, myVw, whereString, orderString), pageUpperBound);
cmdRecord = new OleDbCommand(string.Format(&select {0} from {1} where {2} in ({3}) order by {4} &, showString, myVw, strKey, recordIDs, orderString), m_Conn);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmdRecord);
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
m_Conn.Close();
m_Conn.Dispose();
//////////////////////////////////////////////////添加的方法///////////////////////////////
/// &summary&
/// 根据数据库连接字符串,创建数据库连接对象
/// &/summary&
/// &param name=&connectionString&&数据库连接字符串&/param&
/// &returns&数据库连接对象&/returns&
public static SqlConnection CreateDbConnection(string connectionString)
return new SqlConnection(connectionString);
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有3546人阅读
C#(随笔)(12)
using System.D
using System.C
using System.W
using System.Web.S
using System.C
using System.Data.SqlC
/// &summary&
/// 数据库的通用访问代码
/// 此类为抽象类,不允许实例化,在应用时直接调用即可
/// &/summary&
public abstract class SqlHelper
//获取数据库连接字符串,其属于静态变量且只读,项目中所有文档可以直接使用,但不能修改
public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings[&pubsConnectionString&].ConnectionS
// 哈希表用来存储缓存的参数信息,哈希表可以存储任意类型的参数。
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
/// &summary&
///执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。
/// 使用参数数组形式提供参数列表
/// &/summary&
/// &remarks&
/// 使用示例:
int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, &PublishOrders&, new SqlParameter(&@prodid&, 24));
/// &/remarks&
/// &param name=&connectionString&&一个有效的数据库连接字符串&/param&
/// &param name=&commandType&&SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)&/param&
/// &param name=&commandText&&存储过程的名字或者 T-SQL 语句&/param&
/// &param name=&commandParameters&&以数组形式提供SqlCommand命令中用到的参数列表&/param&
/// &returns&返回一个数值表示此SqlCommand命令执行后影响的行数&/returns&
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(connectionString))
//通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
//清空SqlCommand中的参数列表
cmd.Parameters.Clear();
/// &summary&
///执行一条不返回结果的SqlCommand,通过一个已经存在的数据库连接
/// 使用参数数组提供参数
/// &/summary&
/// &remarks&
/// 使用示例:
int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, &PublishOrders&, new SqlParameter(&@prodid&, 24));
/// &/remarks&
/// &param name=&conn&&一个现有的数据库连接&/param&
/// &param name=&commandType&&SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)&/param&
/// &param name=&commandText&&存储过程的名字或者 T-SQL 语句&/param&
/// &param name=&commandParameters&&以数组形式提供SqlCommand命令中用到的参数列表&/param&
/// &returns&返回一个数值表示此SqlCommand命令执行后影响的行数&/returns&
public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
/// &summary&
/// 执行一条不返回结果的SqlCommand,通过一个已经存在的数据库事物处理
/// 使用参数数组提供参数
/// &/summary&
/// &remarks&
/// 使用示例:
int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, &PublishOrders&, new SqlParameter(&@prodid&, 24));
/// &/remarks&
/// &param name=&trans&&一个存在的 sql 事物处理&/param&
/// &param name=&commandType&&SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)&/param&
/// &param name=&commandText&&存储过程的名字或者 T-SQL 语句&/param&
/// &param name=&commandParameters&&以数组形式提供SqlCommand命令中用到的参数列表&/param&
/// &returns&返回一个数值表示此SqlCommand命令执行后影响的行数&/returns&
public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
/// &summary&
/// 执行一条返回结果集的SqlCommand命令,通过专用的连接字符串。
/// 使用参数数组提供参数
/// &/summary&
/// &remarks&
/// 使用示例:
SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, &PublishOrders&, new SqlParameter(&@prodid&, 24));
/// &/remarks&
/// &param name=&connectionString&&一个有效的数据库连接字符串&/param&
/// &param name=&commandType&&SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)&/param&
/// &param name=&commandText&&存储过程的名字或者 T-SQL 语句&/param&
/// &param name=&commandParameters&&以数组形式提供SqlCommand命令中用到的参数列表&/param&
/// &returns&返回一个包含结果的SqlDataReader&/returns&
public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connectionString);
// 在这里使用try/catch处理是因为如果方法出现异常,则SqlDataReader就不存在,
//CommandBehavior.CloseConnection的语句就不会执行,触发的异常由catch捕获。
//关闭数据库连接,并通过throw再次引发捕捉到的异常。
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
conn.Close();
/// &summary&
/// 执行一条返回第一条记录第一列的SqlCommand命令,通过专用的连接字符串。
/// 使用参数数组提供参数
/// &/summary&
/// &remarks&
/// 使用示例:
Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, &PublishOrders&, new SqlParameter(&@prodid&, 24));
/// &/remarks&
/// &param name=&connectionString&&一个有效的数据库连接字符串&/param&
/// &param name=&commandType&&SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)&/param&
/// &param name=&commandText&&存储过程的名字或者 T-SQL 语句&/param&
/// &param name=&commandParameters&&以数组形式提供SqlCommand命令中用到的参数列表&/param&
/// &returns&返回一个object类型的数据,可以通过 Convert.To{Type}方法转换类型&/returns&
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
SqlCommand cmd = new SqlCommand();
using (SqlConnection connection = new SqlConnection(connectionString))
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
/// &summary&
/// 执行一条返回第一条记录第一列的SqlCommand命令,通过已经存在的数据库连接。
/// 使用参数数组提供参数
/// &/summary&
/// &remarks&
/// 使用示例:
Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, &PublishOrders&, new SqlParameter(&@prodid&, 24));
/// &/remarks&
/// &param name=&conn&&一个已经存在的数据库连接&/param&
/// &param name=&commandType&&SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)&/param&
/// &param name=&commandText&&存储过程的名字或者 T-SQL 语句&/param&
/// &param name=&commandParameters&&以数组形式提供SqlCommand命令中用到的参数列表&/param&
/// &returns&返回一个object类型的数据,可以通过 Convert.To{Type}方法转换类型&/returns&
public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
/// &summary&
/// 缓存参数数组
/// &/summary&
/// &param name=&cacheKey&&参数缓存的键值&/param&
/// &param name=&cmdParms&&被缓存的参数列表&/param&
public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)
parmCache[cacheKey] = commandP
/// &summary&
/// 获取被缓存的参数
/// &/summary&
/// &param name=&cacheKey&&用于查找参数的KEY值&/param&
/// &returns&返回缓存的参数数组&/returns&
public static SqlParameter[] GetCachedParameters(string cacheKey)
SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
if (cachedParms == null)
//新建一个参数的克隆列表
SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];
//通过循环为克隆参数列表赋值
for (int i = 0, j = cachedParms.L i & i++)
//使用clone方法复制参数列表中的参数
clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();
return clonedP
/// &summary&
/// 为执行命令准备参数
/// &/summary&
/// &param name=&cmd&&SqlCommand 命令&/param&
/// &param name=&conn&&已经存在的数据库连接&/param&
/// &param name=&trans&&数据库事物处理&/param&
/// &param name=&cmdType&&SqlCommand命令类型 (存储过程, T-SQL语句, 等等。)&/param&
/// &param name=&cmdText&&Command text,T-SQL语句 例如 Select * from Products&/param&
/// &param name=&cmdParms&&返回带参数的命令&/param&
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
//判断数据库连接状态
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection =
mandText = cmdT
//判断是否需要事物处理
if (trans != null)
cmd.Transaction =
mandType = cmdT
if (cmdParms != null)
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
/// &summary&
/// 执行查询,返回结果集中的第一行第一列的值,忽略其他行列
/// &/summary&
/// &param name=&sql&&&/param&
/// &returns&&/returns&
public static object ExcuteScalar(string sql)
using (SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction))
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
con.Close();
return cmd.ExecuteScalar();
/// &summary&
/// 执行查询
/// &/summary&
/// &param name=&sql&&有效的sql语句&/param&
/// &param name=&param&&返回DataReader&/param&
/// &returns&返回DataReader&/returns&
public static SqlDataReader ExcuteReader(string sql, SqlParameter[] param)
SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.AddRange(param);
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
/// &summary&
/// 执行查询
/// &/summary&
/// &param name=&sql&&有效的sql语句&/param&
/// &returns&返回DataReader&/returns&
public static SqlDataReader ExcuteReader(string sql)
SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
/// &summary&
/// 执行查询的基方法
/// &/summary&
/// &param name=&sql&&有效的sql语句&/param&
/// &returns&返回DataTable&/returns&
public static DataTable ExcuteDataQuery(string sql)
using (SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction))
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
DataTable table = new DataTable();
sda.Fill(table);
con.Close();
/// &summary&
/// 执行增,删,改的基方法
/// &/summary&
/// &param name=&sql&&有效的sql语句&/param&
/// &param name=&param&&参数集合&/param&
/// &returns&影响的行数&/returns&
public static int ExcuteNonQuery(string sql, SqlParameter[] param)
using (SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction))
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
if (param != null)
cmd.Parameters.AddRange(param);
int count = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
con.Close();
//每页显示5条数据
static int pageSize = 10;
/// &summary&
/// 查询共有多少行,然后直接返回总页码
/// &/summary&
/// &returns&&/returns&
public static int GetAllBookCount()
int num = 0;
int pageCount = 0;
string sql = &select count(0) from TB_BookInfo&;
num = Convert.ToInt32(ExcuteScalar(sql));
pageCount = num % pageSize != 0 ? (num / pageSize) + 1 : num / pageS
return pageC
/// &summary&
/// 准备命令
/// &/summary&
/// &param name=&con&&&/param&
/// &param name=&cmd&&&/param&
/// &param name=&textcmd&&&/param&
/// &param name=&cmdType&&&/param&
/// &param name=&param&&&/param&
public static void PreparedCommd(SqlConnection con, SqlCommand cmd, string textcmd, CommandType cmdType, SqlParameter[] param)
if (con.State != ConnectionState.Open)
con.Open();
cmd.Connection =
mandText =
mandType = cmdT
if (param != null)
foreach (SqlParameter p in param)
cmd.Parameters.Add(p);
catch (Exception ex)
throw new Exception(ex.Message);
/// &summary&
/// 执行增、删、改
/// &/summary&
/// &param name=&textcmd&&sql语句或者存储过程&/param&
/// &param name=&cmdType&&类型&/param&
/// &param name=&param&&参数&/param&
/// &returns&返回int类型的数据&/returns&
public static int ExecuteNonQuery(string textcmd,SqlParameter[] param, CommandType cmdType)
using (SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction))
SqlCommand cmd = new SqlCommand();
PreparedCommd(con, cmd, textcmd, cmdType, param);
int num = cmd.ExecuteNonQuery();
/// &summary&
/// 读取一行一列的数据
/// &/summary&
/// &param name=&textmd&&&/param&
/// &param name=&cmdType&&&/param&
/// &param name=&param&&&/param&
/// &returns&&/returns&
public static object ExecuteScalar(string textmd, CommandType cmdType, SqlParameter[] param)
using (SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction))
SqlCommand cmd = new SqlCommand();
PreparedCommd(con, cmd, textmd, cmdType, param);
return cmd.ExecuteScalar();
/// &summary&
/// 读取一行一列的数据
/// &/summary&
/// &param name=&textmd&&&/param&
/// &param name=&cmdType&&&/param&
/// &param name=&param&&&/param&
/// &returns&&/returns&
public static object ExecuteScalar(string SQL)
using (SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction))
con.Open();
SqlCommand cmd = new SqlCommand(SQL, con);
return cmd.ExecuteScalar();
/// &summary&
/// &/summary&
/// &param name=&textcmd&&&/param&
/// &param name=&cmdType&&&/param&
/// &param name=&param&&&/param&
/// &returns&&/returns&
public static SqlDataReader ExecuteReader(string textcmd, CommandType cmdType, SqlParameter[] param)
SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction);
SqlCommand cmd = new SqlCommand();
//PreparedCommd(con, cmd, textcmd, cmdType, param);
SqlDataReader read = cmd.ExecuteReader(CommandBehavior.CloseConnection);
catch (Exception ex)
con.Close();
throw new Exception(ex.Message);
/// &summary&
/// 查询返回DataTable
/// &/summary&
/// &param name=&sql&&&/param&
/// &returns&&/returns&
public static DataTable ExecuteReader(string sql)
SqlConnection con = new SqlConnection(ConnectionStringLocalTransaction);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
da.Fill(dt);
catch (Exception)
/// &summary&
/// 用户登录
/// &/summary&
/// &param name=&UserName&&&/param&
/// &param name=&UserPwd&&&/param&
/// &returns&&/returns&
public static int CheckLogin(string UserName, string UserPwd)
int num = 0;
string sql = &select * from TB_UserInfo
where [user_Name]='& + UserName + &' and user_pwd='& + UserPwd + &'&;
num = Convert.ToInt32(ExecuteScalar(sql));
catch (Exception ex)
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:888485次
积分:8653
积分:8653
排名:第1975名
原创:155篇
转载:102篇
评论:197条
(1)(1)(1)(15)(4)(10)(6)(1)(5)(8)(4)(5)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(2)(11)(5)(3)(4)(9)(4)(6)(5)(11)(3)(2)(15)(9)(11)(7)(5)(1)(7)(3)(3)(5)(8)(9)(3)(2)(6)(1)(10)(1)(5)(2)(5)(2)(2)

我要回帖

更多关于 vb如何连接sql数据库 的文章

 

随机推荐