Ado.NET SQLHelper(2)
using System;
using System.Data;
using System.Data.SqlClient; namespace RaywindStudio
{
namespace DAL
{
/// <summary>
/// MSSQL数据库操作类
/// </summary>
public static class SqlHelper
{
/// <summary>
/// 执行MSSQL插入表操作,默认列名:ColumnName=ParameterName.Replace("@","")
/// </summary>
/// <param name="TableName">表名称</param>
/// <param name="parameters">SqlParameter</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <returns>ExecuteNonQuery执行结果</returns>
public static int InsertCMD(string TableName, SqlParameter[] parameters,
SqlConnection sqlconn)
{
string sql = "Insert into " + TableName + "(";
for (int i = ; i < parameters.Length; i++)
sql += parameters[i].ParameterName.Replace("@", "") + ",";
sql = sql.Substring(, sql.Length - ) + ") Values(";
for (int j = ; j < parameters.Length; j++)
sql += parameters[j].ParameterName + ",";
sql = sql.Substring(, sql.Length - ) + ")";
try
{
SqlCommand cmd = new SqlCommand(sql, sqlconn);
cmd.Parameters.AddRange(parameters);
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception("InsertCMD:ExecuteNonQuery\n" + ex.Message);
}
} /// <summary>
/// 执行MSSQL插入表操作,默认列名:ColumnName=ParameterName.Replace("@","")
/// </summary>
/// <param name="TableName">表名称</param>
/// <param name="parameters">SqlParameter</param>
/// <param name="ColumnValues">ColumnValue键值对:弥补SqlParameter无法调用getdate()、year()等内部函数的不足。
/// 前后分别为Column和Value,添加在insert语句的column和value部分</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <returns>ExecuteNonQuery执行结果</returns>
public static int InsertCMD(string TableName, SqlParameter[] parameters,
string[,] ColumnValues, SqlConnection sqlconn)
{
string sql = "Insert into " + TableName + "(";
for (int i = ; i < parameters.Length; i++)
sql += parameters[i].ParameterName.Replace("@", "") + ",";
for (int ii = ; ii < ColumnValues.GetLength(); ii++)
sql += ColumnValues[ii, ] + ",";
sql = sql.Substring(, sql.Length - ) + ") Values(";
for (int j = ; j < parameters.Length; j++)
sql += parameters[j].ParameterName + ",";
for (int jj = ; jj < ColumnValues.GetLength(); jj++)
sql += ColumnValues[jj, ] + ",";
sql = sql.Substring(, sql.Length - ) + ")";
try
{
SqlCommand cmd = new SqlCommand(sql, sqlconn);
cmd.Parameters.AddRange(parameters);
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception("InsertCMD:ExecuteNonQuery\n" + ex.Message);
}
} /// <summary>
/// 执行MSSQL更新表操作,默认列名:ColumnName=ParameterName.Replace("@","")
/// </summary>
/// <param name="TableName">表名称</param>
/// <param name="parameters">SqlParameter</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <param name="Conditions">查询条件,不需要where,多条件用and分隔,没有条件传入空字串</param>
/// <returns>ExecuteNonQuery执行结果</returns>
public static int UpdateCMD(string TableName, SqlParameter[] parameters,
SqlConnection sqlconn, string Conditions)
{
string sql = "Update " + TableName + " Set ";
for (int i = ; i < parameters.Length; i++)
sql += parameters[i].ParameterName.Replace("@", "")
+ "=" + parameters[i].ParameterName + ",";
sql = sql.Substring(, sql.Length - )
+ " Where 1=1 " + (Conditions.Length > ? " and " + Conditions : "");
try
{
SqlCommand cmd = new SqlCommand(sql, sqlconn);
cmd.Parameters.AddRange(parameters);
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception("UpdateCMD:ExecuteNonQuery\n" + ex.Message);
}
} /// <summary>
/// 执行MSSQL更新表操作,默认列名:ColumnName=ParameterName.Replace("@","")
/// </summary>
/// <param name="TableName">表名称</param>
/// <param name="parameters">SqlParameter</param>
/// <param name="ColumnValues">ColumnValue键值对:弥补SqlParameter无法调用getdate()、year()等内部函数的不足。
/// 前后分别为Column和Value,添加在insert语句的column和value部分</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <param name="Conditions">查询条件,不需要where,多条件用and分隔,没有条件传入空字串</param>
/// <returns>ExecuteNonQuery执行结果</returns>
public static int UpdateCMD(string TableName, SqlParameter[] parameters,
string[,] ColumnValues, SqlConnection sqlconn, string Conditions)
{
string sql = "Update " + TableName + " Set ";
for (int i = ; i < parameters.Length; i++)
sql += parameters[i].ParameterName.Replace("@", "")
+ "=" + parameters[i].ParameterName + ",";
for (int j = ; j < ColumnValues.GetLength(); j++)
sql += ColumnValues[j, ] + "=" + ColumnValues[j, ] + ",";
sql = sql.Substring(, sql.Length - )
+ " Where 1=1 " + (Conditions.Length > ? " and " + Conditions : "");
try
{
SqlCommand cmd = new SqlCommand(sql, sqlconn);
cmd.Parameters.AddRange(parameters);
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception("UpdateCMD:ExecuteNonQuery\n" + ex.Message);
}
} /// <summary>
/// 执行MSSQL删除表内数据操作
/// </summary>
/// <param name="TableName">表名称</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <param name="Conditions">查询条件,不需要where,多条件用and分隔,没有条件传入空字串</param>
/// <returns>ExecuteNonQuery执行结果</returns>
public static int DeleteCMD(string TableName, SqlConnection sqlconn, string Conditions)
{
string sql = "Delete From " + TableName + " Where 1=1 "
+ (Conditions.Length > ? " and " + Conditions : "");
try
{
SqlCommand cmd = new SqlCommand(sql, sqlconn);
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception("DeleteCMD:ExecuteNonQuery\n" + ex.Message);
}
} /// <summary>
/// Select查表
/// </summary>
/// <param name="SqlString">一条完整、直接执行的select语句</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <returns>DataTable</returns>
public static DataTable SelectTable(string SqlString, SqlConnection sqlconn)
{
using (DataTable dt = new DataTable())
{
using (SqlDataAdapter da = new SqlDataAdapter(SqlString, sqlconn))
{
try
{
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
throw new Exception("SelectTable:\n" + ex.Message);
}
}
}
} /// <summary>
/// Select查值
/// </summary>
/// <param name="SqlString">一条完整、直接执行的select语句</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <returns>ExecuteScalar</returns>
public static object SelectValue(string SqlString, SqlConnection sqlconn)
{
try
{
SqlCommand cmd = new SqlCommand(SqlString, sqlconn);
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw new Exception("SelectValue:\n" + ex.Message);
}
} /// <summary>
/// 执行存储过程,无返回值
/// </summary>
/// <param name="sqlString">存储过程执行语句,需包含Exec </param>
/// <param name="parameters">SqlParameter</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <returns>ExecuteNonQuery执行结果</returns>
public static void ExecProcNonReturn(string sqlString, SqlParameter[] parameters, SqlConnection sqlconn)
{
try
{
SqlCommand cmd = new SqlCommand(sqlString, sqlconn);
cmd.Parameters.AddRange(parameters);
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception("ExecProcNonReturn:ExecuteNonQuery\n" + ex.Message);
}
} /// <summary>
/// 执行存储过程,并直接返回执行的结果
/// </summary>
/// <param name="sqlString">存储过程执行语句,需包含Exec </param>
/// <param name="parameters">SqlParameter</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <returns>ExecuteNonQuery执行结果</returns>
public static object ExecProc(string sqlString, SqlParameter[] parameters, SqlConnection sqlconn)
{
try
{
SqlCommand cmd = new SqlCommand(sqlString, sqlconn);
cmd.Parameters.AddRange(parameters);
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw new Exception("ExecProc:ExecuteScalar\n" + ex.Message);
}
} /// <summary>
/// 执行存储过程,带一个返回参数并返回此参数的执行结果
/// </summary>
/// <param name="sqlString">存储过程执行语句,需包含Exec </param>
/// <param name="parameters">SqlParameter</param>
/// <param name="parameter_out">SqlParameter.Direction = ParameterDirection.Output;</param>
/// <param name="sqlconn">一个SQL连接</param>
/// <returns>ExecuteNonQuery执行结果</returns>
public static object ExecProc(string sqlString, SqlParameter[] parameters,
SqlParameter parameter_out, SqlConnection sqlconn)
{
try
{
SqlCommand cmd = new SqlCommand(sqlString, sqlconn);
cmd.Parameters.AddRange(parameters);
cmd.Parameters.Add(parameter_out);
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
cmd.ExecuteNonQuery();
return parameter_out.Value;
}
catch (Exception ex)
{
throw new Exception("ExecProc:ExecuteNonQuery\n" + ex.Message);
}
}
}
}
}
Ado.NET SQLHelper(2)的更多相关文章
- C# ADO基础 SqlHelper
class SqlHelper { //这个是将连接数据库的字符串写到配置文件中的 private static string connStr = ConfigurationManager.Conne ...
- ADO.NET sqlHelper类(DBHelper类)
1.配置文件 <connectionStrings> <add name="constr" connectionString="Data Source= ...
- C# WPF 连接数据库Sqlhelper类
从视频上学习到的WPF连接数据库的方法 需要配置一个 configuration 文件,包含 SQL instance 的相关信息 using System; using System.Collect ...
- ADO.NET封装的SqlHelper
参照别人的方法,顺便再次复习下ADO.NET的相关知识.为自己的类库做准备. namespace Common.SqlHelper { /// <summary> /// ADO.NET- ...
- ADO.NET复习——自己编写SqlHelper类
今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...
- 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串
第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...
- ADO.Net和SqlHelper封装
1.什么是ADO.Net 简单来讲,ADO.NET是用于和数据源打交道的.Net结束,是一组向.NET程序员公开数据访问服务的类 2.ADO.NET的组成部分和对象模型 (1)ADO.NET的两个 ...
- 基于ADO.NET的SqlHelper类
1.使用Connection连接数据库的步骤: (1).添加命名空间 System.Data.SqlClient(注意:初学者经常会忘记) (2)定义连接字符串.连接SQL Server 数据库时: ...
- 【ADO.NET】6、SQLHelper简单封装
using System.Data.SqlClient;using System.Configuration;引用:System.Configuration 连接字符串放到配置文件中 新建一个类,写如 ...
随机推荐
- JavaScript 数字
数字(Number)也称为数值或数. 数值直接量 当数字直接出现在程序中时,被称为数值直接量.在 JavaScript 程序中,直接输入的任何数字都被视为数值直接量. 示例1 数值直接量可以细分为整型 ...
- 【转载】CentOS和Ubuntu的区别
CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代 ...
- 第2节 Scala中面向对象编程:9、getClass和classOf;10、调用父类的constructor;11、抽象类和抽象字段;
6.3.4. Scala中getClass 和 classOf Class A extends class B B b=new A b.getClass ==classOf[A] B b ...
- One-Hot Encoding(独热编码)
前几天查了一些与独热编码相关的资料后,发现看不进去...看不太懂,今天又查了一下,然后写了写代码,通过自己写例子加上别人的解释后,从结果上观察,明白了sklearn中独热编码做了什么事. 下面举个例子 ...
- C++ class with pointer member(s)
正如标题所示:这篇复习带有指针类型成员的class 设计类 考虑到会有以下操作,来设计类 { String s1(); String s2("hello"); String s3( ...
- 浏览器控制台报Cannot read property 'conf' of undefined
原因:JS中有个变量没有类型导致 解决:加上类型即可(我是少写了var)
- ping命令工具:同时ping多个IP
检测多个ip在同一时间点的响应状态,通过对比来判断哪个ip异常. 下载地址:https://share.weiyun.com/5XCkypG
- Eclipse中创建新的SpringBoot项目(打包并且部署到tomcat)
Spring-boot因为其对jar包的高度集成以及简化服务配置,快速部署等的优点,逐渐成为Java开发人员的热衷的框架.下面演示一下怎么在Eclipse中新建Spring-boot项目以及打包部署. ...
- 吴裕雄--天生自然PYTHON爬虫:爬虫攻防战
我们在开发者模式下不仅可以找到URL.Form Data,还可以在Request headers 中构造浏览器的请求头,封装自己.服务器识别浏览器访问的方法就是判断keywor是否为Request h ...
- 五子棋C#源码,网络对战版---转载--待学习
五子棋C#源码,网络对战版 支持网络对战的C#五子棋源码下载,VS2010环境编译后可运行,需要先输入ip地址才行,不是单机版的.部分代码摘录如下://将接收的消息转换成自定义集合MessClass ...