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 连接字符串放到配置文件中 新建一个类,写如 ...
随机推荐
- windows下 DEV-C++无法连接到pthread.h的解决办法
参考的这个博文,原博文有图片:http://lslin.iteye.com/blog/776325 (我只是为了方便写.copy一遍) dev-C++编写C/C++程序时,非常方便轻巧,但是今天学习多 ...
- web-pc项目中index页面分析
先上HTML代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...
- Codeforces Round #588 (Div. 2)D(思维,多重集)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;long long a[7007],b[700 ...
- Codeforces 1260 ABC
DEF 题对于 wyh 来说过于毒瘤,十分不可做. A. Heating Description: 给定\(a,b\),将\(b\)分成至少\(a\)个正整数,使这些正整数的平方和最小. Soluti ...
- [ Pytorch ] torch.squeeze() 和torch.unsqueeze()的用法
squeeze的用法主要就是对数据的维度进行压缩或者解压. squeeze() torch.squeeze(a):去掉a中维数为1的维度. a.squeeze(N):去掉特定维度N下维数为1的维度. ...
- H.264 中的Annex B格式和AVCC格式
首先要理解的是没有标准的H.264基本流格式.文档中的确包含了一个Annex,特别是描述了一种可能的格式Annex B格式,但是这个并不是一个必须要求的格式.标准文档中指定了视频怎样编码成独立的包,但 ...
- 浏览器控制台报Cannot read property 'conf' of undefined
原因:JS中有个变量没有类型导致 解决:加上类型即可(我是少写了var)
- webpack配置文件里loader的执行顺序:从下到上,从右到左; css-loader开启css模块化modules: true,
注释: options:{ importLoaders: 2 } 解决样式文件里使用@import 'xxx.xxx' 的问题 module: { rules: [{ test: /\.scss$/, ...
- 通过修改select的value值
1 <input type="button" id="btn" value="按钮"/> 2 <select name=& ...
- python第三方库介绍