DBHelper类及数据库连接问题?
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Reflection;
using System.Configuration;
using Cp.Processing;
namespace Cp.DAL
{
/// <summary>
/// DBhelper 类
/// </summary>
public class DBHelper
{
public static string connString = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
///// <summary>
///// 工具生成的
///// </summary>
///// <returns></returns>
//public static SqlConnection CreateConn()
//{
// return new SqlConnection(connString);
//}
/// <summary>
/// 打开数据库连接
/// </summary>
/// <param name="conn"></param>
public static void OpenConn(SqlConnection conn)
{
if (conn != null)
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
}
}
/// <summary>
/// 关闭数据库连接
/// </summary>
/// <param name="conn"></param>
public static void CloseConn(SqlConnection conn)
{
if (conn != null)
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
private static SqlConnection connection;
/// <summary>
/// 获取数据库连接(Connection)
/// </summary>
public static SqlConnection Connection
{
get
{
string connectionString = connString;
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>
/// 执行 T-SQL 语句,并返回所受影响的行数-----AAA
/// </summary>
/// <param name="safeSql">Sql语句</param>
/// <returns>返回受影响的行数</returns>
public static int ExecuteCommand(string safeSql)
{
SqlConnection conn = Connection;
try
{
SqlCommand cmd = new SqlCommand(safeSql, conn);
//等待时间
cmd.CommandTimeout = 30;
int num = cmd.ExecuteNonQuery();
CloseConn(conn); //关闭数据库连接
return num;
}
catch (Exception e)
{
CloseConn(conn);
return 0;
}
}
/// <summary>
/// 返回 SqlDataReader 的对象
/// </summary>
/// <param name="safeSql"></param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string safeSql)
{
SqlConnection conn = Connection;
try
{
SqlCommand cmd = new SqlCommand(safeSql.Trim(), conn);
//等待时间
cmd.CommandTimeout = 30;
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
catch (Exception e)
{
CloseConn(conn);
return null;
}
}
/// <summary>
/// 增删改
/// </summary>
/// <param name="cmdText"></param>
/// <param name="paramers"></param>
/// <returns></returns>
public static Object Execute(string cmdText, params SqlParameter[] paramers)
{
SqlConnection conn = Connection;
try
{
SqlCommand cmd = CreateCMD(cmdText, paramers, conn);
//等待时间
cmd.CommandTimeout = 30;
int num = cmd.ExecuteNonQuery();
CloseConn(conn); //关闭数据库连接
return num;
}
catch (Exception e)
{
CloseConn(conn);
return 0;
}
}
/// <summary>
/// 查询 的sql 或者 存储过程
/// </summary>
/// <param name="cmdText"></param>
/// <param name="paramers"></param>
/// <returns></returns>
public static Object M_Execute(string cmdText, params SqlParameter[] paramers)
{
SqlConnection conn = Connection;
try
{
SqlCommand cmd = CreateCMD(cmdText, paramers, conn);
//等待时间
cmd.CommandTimeout = 30;
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception e)
{
CloseConn(conn);
return new object();
}
}
//上面的调用
private static SqlCommand CreateCMD(string cmdText, SqlParameter[] paramers, SqlConnection conn)
{
SqlCommand cmd = new SqlCommand(cmdText, conn);
if (paramers != null)
cmd.Parameters.AddRange(paramers);
OpenConn(conn);
return cmd;
}
}
}
读取时候调用如下:
using (SqlDataReader sdr = (SqlDataReader)DBHelper.M_Execute(cmdText))
{
while (sdr.Read())
{
UserType userType = new UserType();
userType.id = (Convert.ToInt32(sdr[0]));
userType.name = (Convert.ToString(sdr[1]));
userTypes.Add(userType);
........
}
sdr.Dispose();
}有时候根据用户Id,用户信息 明明存在,确查询不出数据。 (数据库不在本地)
...全文
相关推荐
SQLDataHelper SQL操作类
SQLDataHelper类允许一次发送多个SQL语句,数据库服务器会在内部一次性执行,减少了网络通信的开销。6. **异常处理**:在执行SQL操作时,可能会遇到各种异常,如连接问题、语法错误等。
数据源连接mysql数据库的设置方法.pdf
同时,注意安全问题,避免在配置文件中直接写入敏感信息如数据库用户名和密码,可以考虑使用环境变量或者密钥存储服务来存储这些信息。
C# DBHelper类
DBHelper类是C#中常见的一个数据库操作辅助类,它封装了与数据库进行交互的基本操作,如连接、查询、插入、更新和删除等。这个类的设计目的是简化数据库访问,提高代码的可读性和可维护性。
DBHelper类+数据库连接类
DBHelper类+数据库连接类DBHelper类+数据库连接类DBHelper类+数据库连接类DBHelper类+数据库连接类DBHelper类+数据库连接类DBHelper类+数据库连接类DBHe
C#总结:DBHelper类,连接数据库
DBHelper类的构造函数:通常,DBHelper类会有一个或多个构造函数,接收连接字符串作为参数,用于初始化数据库连接。这样,实例化DBHelper时就可以传入所需的连接信息。4.


