2023年6月21日发(作者:)

⾃⼰动⼿编写⼀个C#数据库操作的⼯具类在开发流程中编写数据访问及操作的代码必不可少,为了不让相关代码在项⽬内过多的重复编写,所以就要编写⼀个通⽤的数据操作相关的类了。使⽤也很⽅便,调⽤使⽤就可以了。使⽤这个⼯具类会⼤幅度减少编写数据访问相关的代码量。这⾥我就把编写流程分别写出来~以下是⼯具类的相关代码:连接数据库的字符串1.引⽤配置⽂件信息()⽅式⼯具类中代码:public static string connstr = tionStrings["connStr"].ToString();配置⽂件()的代码:提⽰:写在 configuration 块内。 2.普通字符串⽅式public static string connStr = "server=.;database=student;uid=sa;pwd=123456";基础数据操作1.数据增删改操作///

///

数据增删改⽅法///

/// T-SQL语句/// 参数数组/// 返回受影响⾏数public static int ExecuteNonQuery(string sql, SqlParameter[] param){ //创建连接 using (SqlConnection conn = new SqlConnection(connstr)) { using (SqlCommand cmd = new SqlCommand(sql, conn)) { if (param != null) //当我们传递的参数不为空,进⾏赋值 { ge(param); } try { (); //打开连接 return eNonQuery(); //执⾏命令,返回受影响⾏数 } catch (Exception e) { ine(e); throw; } } }}2.数据查询操作/// /// SqlDataAdapter

数据填充查询⽅法///

/// T-SQL语句/// 参数数组/// 返回系统临时内存表public static DataTable Query(string sql, SqlParameter[] param){ using (SqlDataAdapter sda = new SqlDataAdapter(sql, connstr)) { if (param != null) { ge(param); } DataTable dt = new DataTable(); //创建系统虚表 (dt); //

把查询出来的数据填充到系统虚表当中 return dt; //返回系统虚表 }}其他数据操作1.查询数据总⾏数///

///

查询数据个数///

/// T-SQL语句/// 参数数组/// 数量public static object ExecuteScalar(string sql, SqlParameter[] param){ using (SqlConnection conn = new SqlConnection(connstr)) { using (SqlCommand cmd = new SqlCommand(sql, conn)) { if (param != null) { ge(param); }

try { (); return eScalar();//执⾏之后得到我们查询的值 } catch (Exception e) { ine(e); throw; } } }}2.读取Excel形成DataTable结果集///

///

读取Excel形成DataTable结果集///

/// ⽂件绝对路径/// 查询页签sql/// DataTable结果集public static DataTable ExcuteDataTableByExcel(string filePath,string strSql)

{ string connetionStr = "Provider=.12.0;" + "Data Source=" + filePath + ";" + "Extended Properties='Excel 12.0;HDR=Yes;IMEX=0';"; DataTable dtExcel = new DataTable(); OleDbConnection odbConn = new OleDbConnection(connetionStr); OleDbDataAdapter odbAdapter = new OleDbDataAdapter(strSql, odbConn); (dtExcel); return dtExcel;}需要引⽤ ;3.批量导⼊数据到数据库///

///

批量导⼊数据到数据库///

/// 源数据/// 连接的数据库/// 事务/// 导⼊的数据列public static void BulkCopyToDBFormExel(DataTable dt,SqlBulkCopyOptions option, string tableName){ //SqlBulkCopy blkCopy = new SqlBulkCopy(conn, entity, transaction);//⽣成⾃增的列表 SqlConnection conn = null; SqlTransaction transaction = null; SqlBulkCopy blkCopy = null; try { conn = new SqlConnection(connstr); (); transaction = ransaction(); blkCopy = new SqlBulkCopy(conn,option, transaction); ize = ; ationTableName = tableName; for (int i = 0; i < ; i++) { (s[i].ColumnName, s[i].ColumnName); } oServer(dt); (); } catch (Exception ex) { throw ex; } finally

{ (); e(); e(); }}注意事项:1.注意⽅法内引⽤的变量名是否与编写的⼀致。2.注意编写的数据库连接字符串是否正确。

2023年6月21日发(作者:)

⾃⼰动⼿编写⼀个C#数据库操作的⼯具类在开发流程中编写数据访问及操作的代码必不可少,为了不让相关代码在项⽬内过多的重复编写,所以就要编写⼀个通⽤的数据操作相关的类了。使⽤也很⽅便,调⽤使⽤就可以了。使⽤这个⼯具类会⼤幅度减少编写数据访问相关的代码量。这⾥我就把编写流程分别写出来~以下是⼯具类的相关代码:连接数据库的字符串1.引⽤配置⽂件信息()⽅式⼯具类中代码:public static string connstr = tionStrings["connStr"].ToString();配置⽂件()的代码:提⽰:写在 configuration 块内。 2.普通字符串⽅式public static string connStr = "server=.;database=student;uid=sa;pwd=123456";基础数据操作1.数据增删改操作///

///

数据增删改⽅法///

/// T-SQL语句/// 参数数组/// 返回受影响⾏数public static int ExecuteNonQuery(string sql, SqlParameter[] param){ //创建连接 using (SqlConnection conn = new SqlConnection(connstr)) { using (SqlCommand cmd = new SqlCommand(sql, conn)) { if (param != null) //当我们传递的参数不为空,进⾏赋值 { ge(param); } try { (); //打开连接 return eNonQuery(); //执⾏命令,返回受影响⾏数 } catch (Exception e) { ine(e); throw; } } }}2.数据查询操作/// /// SqlDataAdapter

数据填充查询⽅法///

/// T-SQL语句/// 参数数组/// 返回系统临时内存表public static DataTable Query(string sql, SqlParameter[] param){ using (SqlDataAdapter sda = new SqlDataAdapter(sql, connstr)) { if (param != null) { ge(param); } DataTable dt = new DataTable(); //创建系统虚表 (dt); //

把查询出来的数据填充到系统虚表当中 return dt; //返回系统虚表 }}其他数据操作1.查询数据总⾏数///

///

查询数据个数///

/// T-SQL语句/// 参数数组/// 数量public static object ExecuteScalar(string sql, SqlParameter[] param){ using (SqlConnection conn = new SqlConnection(connstr)) { using (SqlCommand cmd = new SqlCommand(sql, conn)) { if (param != null) { ge(param); }

try { (); return eScalar();//执⾏之后得到我们查询的值 } catch (Exception e) { ine(e); throw; } } }}2.读取Excel形成DataTable结果集///

///

读取Excel形成DataTable结果集///

/// ⽂件绝对路径/// 查询页签sql/// DataTable结果集public static DataTable ExcuteDataTableByExcel(string filePath,string strSql)

{ string connetionStr = "Provider=.12.0;" + "Data Source=" + filePath + ";" + "Extended Properties='Excel 12.0;HDR=Yes;IMEX=0';"; DataTable dtExcel = new DataTable(); OleDbConnection odbConn = new OleDbConnection(connetionStr); OleDbDataAdapter odbAdapter = new OleDbDataAdapter(strSql, odbConn); (dtExcel); return dtExcel;}需要引⽤ ;3.批量导⼊数据到数据库///

///

批量导⼊数据到数据库///

/// 源数据/// 连接的数据库/// 事务/// 导⼊的数据列public static void BulkCopyToDBFormExel(DataTable dt,SqlBulkCopyOptions option, string tableName){ //SqlBulkCopy blkCopy = new SqlBulkCopy(conn, entity, transaction);//⽣成⾃增的列表 SqlConnection conn = null; SqlTransaction transaction = null; SqlBulkCopy blkCopy = null; try { conn = new SqlConnection(connstr); (); transaction = ransaction(); blkCopy = new SqlBulkCopy(conn,option, transaction); ize = ; ationTableName = tableName; for (int i = 0; i < ; i++) { (s[i].ColumnName, s[i].ColumnName); } oServer(dt); (); } catch (Exception ex) { throw ex; } finally

{ (); e(); e(); }}注意事项:1.注意⽅法内引⽤的变量名是否与编写的⼀致。2.注意编写的数据库连接字符串是否正确。