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 连接字符串放到配置文件中 新建一个类,写如 ...
随机推荐
- java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包
Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...
- Hibernate笔记二
1.延迟加载(懒加载) 概念 需要用到该数据的时候才要加载 种类 类的延迟加载 案例 说明:注意:使用的是Load方法 1. 执行22行代码的时候,不发出sql语句,说明类的延迟加载和主键没有关系 ...
- [转]轻松理解AOP思想(面向切面编程)
原文链接 Spring是什么 先说一个Spring是什么吧,大家都是它是一个框架,但框架这个词对新手有点抽象,以致于越解释越模糊,不过它确实是个框架的,但那是从功能的角度来定义的,从本质意义上来讲,S ...
- 1014 Waiting in Line (30分)
1014 Waiting in Line (30分) Suppose a bank has N windows open for service. There is a yellow line i ...
- BurpSuite pro v2.0.11版
下载地址: 链接:https://pan.baidu.com/s/1CgXgK_lV2OWjRT364hvfog 提取码:gvxy BurpSuite介绍 借用一下吾爱破解文章中的描述信息:https ...
- ES5中的this
参考资料:>>> this的指向 在 ES5 中,其实 this 的指向,始终坚持一个原理: this 永远指向最后调用它的那个对象 下面我们来看一个最简单的例子:(例子均来自参考资 ...
- 「AMPPZ2014」The Captain
传送门: 这是一道bzoj权限题 Luogu团队题链接 解题思路 直接连边的话边数肯定会爆炸,考虑减少边数. 我们画出坐标系,发现一个东西: 对于两个点 \(A,B\),\(|x_A-y_A|\) 可 ...
- IE 样式属性前后缀兼容写法略统计
总结 IE 兼容写法: \9: IE6 IE7 IE8*: IE6 IE7_: IE6*+: IE7 ---------------------------------- 书写位置: backgrou ...
- Spring @Async之一:实现异步调用示例
什么是“异步调用”? “异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用的语句返回结果 ...
- java编程,通过代理服务器访问外网的FTP
有些时候我们的网络不能直接连接到外网, 需要使用http或是https或是socket代理来连接到外网, 这里是java使用代理连接到外网的一些方法, 希望对你的程序有用.方法一:使用系统属性来完成代 ...