public class DataDeal
{
#region 数据库连接字符串
/// <summary>
///主要包括sqlHelp数据库访问助手类 和常用的一些函数定义
///</summary>
///SqlHelp数据库访问助手
///1.public static void OpenConn() //打开数据库连接
///2.public static void CloseConn() //关闭数据库连接
///3.public static SqlDataReader getDataReaderValue(string sql) //读取数据
///4.public DataSet GetDataSetValue(string sql, string tableName) //返回DataSet
///5.public DataView GetDataViewValue(string sql) //返回DataView
///6.public DataTable GetDataTableValue(string sql) //返回DataTable
///7.public void ExecuteNonQuery(string sql) //执行一个SQL操作:添加、删除、更新操作
///8.public int ExecuteNonQueryCount(string sql) //执行一个SQL操作:添加、删除、更新操作,返回受影响的行
///9.public static object ExecuteScalar(string sql) //执行一条返回第一条记录第一列的SqlCommand命令
///10.public int SqlServerRecordCount(string sql) //返回记录数
///常用函数
///1.public static bool IsNumber(string a) //判断是否为数字
///2.public static string GetSafeValue(string value) //过滤非法字符
///私有属性:数据库连接字符串
///Data Source=(Local) 服务器地址
///Initial Catalog=SimpleMESDB 数据库名称
///User ID=sa 数据库用户名
///Password=admin123456 数据库密码
private const string connectionString = "Data Source=(Local);Pooling=False;Max Pool Size = 1024;Initial Catalog=SimpleMESDB;Persist Security Info=True;User ID=sa;Password=admin123456";
/// <summary>
/// sqlHelp 的摘要说明:数据库访问助手类
/// sqlHelper是从DAAB中提出的一个类,在这里进行了简化,DAAB是微软Enterprise Library的一部分,该库包含了大量大型应用程序
/// 开发需要使用的库类。
/// </summary>
public static SqlConnection conn;
//打开数据库连接
public static void OpenConn()
{
string SqlCon = connectionString;//数据库连接字符串
conn = new SqlConnection(SqlCon);
if (conn.State.ToString().ToLower() == "open")
{
}
else
{
conn.Open();
}
}
//关闭数据库连接
public static void CloseConn()
{
if (conn.State.ToString().ToLower() == "open")
{
//连接打开时
conn.Close();
conn.Dispose();
}
}
// 读取数据
public static SqlDataReader GetDataReaderValue(string sql)
{
OpenConn();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
CloseConn();
return dr;
}
// 返回DataSet
public DataSet GetDataSetValue(string sql, string tableName)
{
OpenConn();
SqlDataAdapter da;
DataSet ds = new DataSet();
da = new SqlDataAdapter(sql, conn);
da.Fill(ds, tableName);
CloseConn();
return ds;
}
// 返回DataView
public DataView GetDataViewValue(string sql)
{
OpenConn();
SqlDataAdapter da;
DataSet ds = new DataSet();
da = new SqlDataAdapter(sql, conn);
da.Fill(ds, "temp");
CloseConn();
return ds.Tables[0].DefaultView;
}
// 返回DataTable
public DataTable GetDataTableValue(string sql)
{
OpenConn();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(dt);
CloseConn();
return dt;
}
// 执行一个SQL操作:添加、删除、更新操作
public void ExecuteNonQuery(string sql)
{
OpenConn();
SqlCommand cmd;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
cmd.Dispose();
CloseConn();
}
// 执行一个SQL操作:添加、删除、更新操作,返回受影响的行
public int ExecuteNonQueryCount(string sql)
{
OpenConn();
SqlCommand cmd;
cmd = new SqlCommand(sql, conn);
int value = cmd.ExecuteNonQuery();
return value;
}
//执行一条返回第一条记录第一列的SqlCommand命令
public object ExecuteScalar(string sql)
{
OpenConn();
SqlCommand cmd;
cmd = new SqlCommand(sql, conn);
object value = cmd.ExecuteScalar();
return value;
}
// 返回记录数
public int SqlServerRecordCount(string sql)
{
OpenConn();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = sql;
cmd.Connection = conn;
SqlDataReader dr;
dr = cmd.ExecuteReader();
int RecordCount = 0;
while (dr.Read())
{
RecordCount = RecordCount + 1;
}
CloseConn();
return RecordCount;
}
///<summary>
///一些常用的函数
///</summary>
//判断是否为数字
public static bool IsNumber(string a)
{
if (string.IsNullOrEmpty(a))
return false;
foreach (char c in a)
{
if (!char.IsDigit(c))
return false;
}
return true;
}
// 过滤非法字符
public static string GetSafeValue(string value)
{
if (string.IsNullOrEmpty(value))
return string.Empty;
value = Regex.Replace(value, @";", string.Empty);
value = Regex.Replace(value, @"'", string.Empty);
value = Regex.Replace(value, @"&", string.Empty);
value = Regex.Replace(value, @"%20", string.Empty);
value = Regex.Replace(value, @"--", string.Empty);
value = Regex.Replace(value, @"==", string.Empty);
value = Regex.Replace(value, @"<", string.Empty);
value = Regex.Replace(value, @">", string.Empty);
value = Regex.Replace(value, @"%", string.Empty);
return value;
}
#endregion
#region 通过C#访问数据库数据
/*通过C#访问数据库数据
用到的命名空间和变量类型:
using System.Data.SqlClient;
SqlConnection;数据库连接类
SqlCommand;数据库操作类
SqlDataReader:读取 */
//SQL Server连接
public void ConnectFun(string sqlstring)
{
try //try...catch...异常处理语句
{
string name = "", pass = "";
string str = "Data Source=服务器地址;Initial Catalog=数据库名;User ID=sa;Password=123456;";
SqlConnection myConn = new SqlConnection(str);//创建数据库连接类的对象
myConn.Open(); //将连接打开
//SQL语句:从数据库的登录表中搜索登录名,密码
sqlstring = "select username,password from users where username='" + name + "'and password='" + pass + "'";
//执行con对象的函数,返回一个SqlCommand类型的对象
SqlCommand command = new SqlCommand(sqlstring, myConn);
//用cmd的函数执行语句,返回SqlDataReader对象thisReader,thisReader就是返回的结果集(也就是数据库中查询到的表数据)
SqlDataReader thisReader = command.ExecuteReader();
//用完后关闭连接,以免影响其他程序访问
myConn.Close();
}
catch (Exception ex2)
{
//MessageBox.Show("连接远程SQL数据库发生错误:" + ex2.ToString(), "错误!");
}
}
#endregion
}