当前位置: 首页 > 编程日记 > 正文

.Net SqlDbHelper

using System.Configuration;
using System.Data.SqlClient;
using System.Data;namespace ExamDAL
{class SqHelper{#region 属性区// 连接字符串private static string strConn;public static string StrConn{get{return ConfigurationManager.ConnectionStrings["Exam"].ConnectionString;}}#endregion#region 方法区#region 获取受影响的行数/// 执行非查询存储过程和SQL语句/// 增、删、改/// </summary>/// <param name="strSQL">要执行的SQL语句</param>/// <param name="cmdType">Command类型</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <returns>返回影响行数</returns>public static int ExcuteSQL(string strSQL, CommandType cmdType, params SqlParameter[] paras){int count = 0;using (SqlConnection conn = new SqlConnection(StrConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();count = cmd.ExecuteNonQuery();conn.Close();}return count;}/// <summary>/// 执行没有参数的SQL的语句/// </summary>/// <param name="strSQL">执行SQL</param>/// <returns>受影响的行数</returns>public static int ExcuteSQL(string strSQL){return ExcuteSQL(strSQL, null);}/// <summary>/// 执行有参数的SQL的语句/// </summary>/// <param name="strSQL">执行SQL</param>/// <param name="paras">参数</param>/// <returns>受影响的行数</returns>public static int ExcuteSQL(string strSQL, SqlParameter[] paras){return ExcuteSQL(strSQL, CommandType.Text, paras);}/// <summary>/// 执行没有参数的存储过程/// </summary>/// <param name="ProcName">存储过程名称</param>/// <returns>受影响的行数</returns>public static int ExcuteProc(string ProcName){return ExcuteSQL(ProcName, CommandType.StoredProcedure);}/// <summary>/// 执行有参数的存储过程/// </summary>/// <param name="ProcName">存储过程名称</param>/// <param name="pars">参数</param>/// <returns>受影响的行数</returns>public static int ExcuteProc(string ProcName, SqlParameter[] pars){return ExcuteSQL(ProcName, CommandType.StoredProcedure, pars);}#endregion#region 获取第一行第一列的值/// <summary>/// 执行SQL语句,返回首行首列/// </summary>/// <param name="strSQL">要执行的SQL语句</param>/// <param name="cmdtype">执行的类型</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <returns>返回的首行首列</returns>public static object GetObject(string strSQL, CommandType cmdtype, params SqlParameter[] paras){object obj = null;using (SqlConnection conn = new SqlConnection(StrConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();obj = cmd.ExecuteScalar();conn.Close();}return obj;}/// <summary>/// 根据sql语句获取单个值/// </summary>/// <param name="strSQL"></param>/// <returns></returns>public static object GetObject(string strSQL){return GetObject(strSQL, null);}/// <summary>/// 根据sql语句 和 参数数组获取单个值/// </summary>/// <param name="strSQL"></param>/// <param name="paras"></param>/// <returns></returns>public static object GetObject(string strSQL, SqlParameter[] paras){return GetObject(strSQL, CommandType.Text, paras);}/// <summary>/// 调用不带参数的存储过程获取单个值/// </summary>/// <param name="ProcName"></param>/// <returns></returns>public static object GetObjectByProc(string ProcName){return GetObjectByProc(ProcName);}/// <summary>/// 调用带参数的存储过程获取单个值/// </summary>/// <param name="ProcName"></param>/// <param name="paras"></param>/// <returns></returns>public static object GetObjectByProc(string ProcName, params SqlParameter[] paras){return GetObject(ProcName, CommandType.StoredProcedure, paras);}#endregion#region 获取DataReader/// <summary>/// 根据sql语句返回DataReader对象/// </summary>/// <param name="strSQL">sql语句</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReader(string strSQL){return GetReader(strSQL, null);}/// <summary>/// 根据sql语句和参数返回DataReader对象/// </summary>/// <param name="strSQL">sql语句</param>/// <param name="paras">参数数组</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReader(string strSQL, params SqlParameter[] paras){return GetReader(strSQL, CommandType.Text, paras);}/// <summary>/// 调用不带参数的存储过程,返回DataReader对象/// </summary>/// <param name="procName">存储过程名称</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName){return GetReaderByProc(procName);}/// <summary>/// 调用带有参数的存储过程,返回DataReader对象/// </summary>/// <param name="procName">存储过程名</param>/// <param name="paras">参数数组</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName, params SqlParameter[] paras){return GetReader(procName, CommandType.StoredProcedure, paras);}/// <summary>/// 查询SQL语句获取DataReader/// </summary>/// <param name="strSQL">查询的SQL语句</param>/// <param name="cmdtype">执行类型</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <returns>查询到的DataReader(关闭该对象的时候,自动关闭连接)</returns>public static SqlDataReader GetReader(string strSQL, CommandType cmdtype, params SqlParameter[] paras){SqlDataReader sqldr = null;SqlConnection conn = new SqlConnection(StrConn);SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();//CommandBehavior.CloseConnection的作用是如果关联的DataReader对象关闭,则连接自动关闭sqldr = cmd.ExecuteReader(CommandBehavior.CloseConnection);return sqldr;}#endregion#region 获取DataTable/// <summary>/// 执行查询,返回DataTable对象/// </summary>/// <param name="strSQL">sql语句</param>/// <param name="cmdtype">Command类型</param>/// <param name="paras">参数数组</param>/// <returns>DataTable对象</returns>public static DataTable GetTable(string strSQL, CommandType cmdtype, params SqlParameter[] paras){DataTable dt = new DataTable(); ;using (SqlConnection conn = new SqlConnection(StrConn)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);da.SelectCommand.CommandType = cmdtype;if (paras != null){da.SelectCommand.Parameters.AddRange(paras);}da.Fill(dt);}return dt;}/// <summary>/// 执行无参数语句/// </summary>/// <param name="strSQL">执行SQL</param>/// <returns>DataTable</returns>public static DataTable GetTable(string strSQL){return GetTable(strSQL, null);}/// <summary>/// 执行有参语句/// </summary>/// <param name="strSQL">执行SQL</param>/// <param name="paras">参数数组</param>/// <returns>DataTable</returns>public static DataTable GetTable(string strSQL, params SqlParameter[] paras){return GetTable(strSQL, CommandType.Text, paras);}#endregion#region 获取DataSet/// <summary>/// 执行查询,返回DataSet对象/// </summary>/// <param name="strSQL">sql语句</param>/// <param name="cmdtype">Command类型</param>/// <param name="paras">参数数组</param>/// <returns>DataSet对象</returns>public static DataSet GetDataSet(string strSQL, CommandType cmdtype, params SqlParameter[] paras){DataSet dt = new DataSet(); ;using (SqlConnection conn = new SqlConnection(StrConn)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);da.SelectCommand.CommandType = cmdtype;if (paras != null){da.SelectCommand.Parameters.AddRange(paras);}da.Fill(dt);}return dt;}/// <summary>/// 执行无参数的SQL/// </summary>/// <param name="strSQL">执行SQL</param>/// <returns>DataSet</returns>public static DataSet GetDataSet(string strSQL){return GetDataSet(strSQL, null);}/// <summary>/// 执行有参数的SQL/// </summary>/// <param name="strSQL">执行SQL</param>/// <param name="paras">参数数组</param>/// <returns>DataSet</returns>public static DataSet GetDataSet(string strSQL, SqlParameter[] paras){return GetDataSet(strSQL, CommandType.Text, paras);}#endregion#region 批量插入数据处理/// <summary>/// 往数据库中批量插入数据/// </summary>/// <param name="sourceDt">数据源表</param>/// <param name="targetTable">服务器上目标表</param>public static void BulkToDB(DataTable sourceDt, string targetTable){SqlConnection conn = new SqlConnection(strConn);SqlBulkCopy bulkCopy = new SqlBulkCopy(conn);   //用其它源的数据有效批量加载sql server表中bulkCopy.DestinationTableName = targetTable;    //服务器上目标表的名称bulkCopy.BatchSize = sourceDt.Rows.Count;   //每一批次中的行数try{conn.Open();if (sourceDt != null && sourceDt.Rows.Count != 0)bulkCopy.WriteToServer(sourceDt);   //将提供的数据源中的所有行复制到目标表中
            }catch (System.Exception ex){throw ex;}finally{conn.Close();if (bulkCopy != null)bulkCopy.Close();}}#endregion#endregion}
}

转载于:https://www.cnblogs.com/LoveQin/p/5355694.html

相关文章:

C语言的一个之前没有见过的特性

代码&#xff1a; #include <stdio.h>int test(){int a ({int aa 0;int bb 1;int cc 2;if(aa 0 && bb 1)printf("aa %d, bb %d\n", aa, bb);//return -2;cc;});return a; }int main(){typeof(4) a test();printf("a %d\n", a); } …

如何构建顶部导航条_如何构建导航栏

如何构建顶部导航条导航栏 (Navigation Bars) Navigation bars are a very important element to any website. They provide the main method of navigation by providing a main list of links to a user. There are many methods to creating a navigation bar. The easiest…

SPSS聚类分析:K均值聚类分析

SPSS聚类分析&#xff1a;K均值聚类分析 一、概念&#xff1a;&#xff08;分析-分类-K均值聚类&#xff09; 1、此过程使用可以处理大量个案的算法&#xff0c;根据选定的特征尝试对相对均一的个案组进行标识。不过&#xff0c;该算法要求您指定聚类的个数。如果知道&#xff…

[ 总结 ] nginx 负载均衡 及 缓存

操作系统&#xff1a;centos6.4 x64 前端使用nginx做反向代理&#xff0c;后端服务器为&#xff1a;apache php mysql 1. nginx负载均衡。 nginx编译安装&#xff08;编译安装前面的文章已经写过&#xff09;、apache php mysql 直接使用yum安装。 nginx端口&#xff1a;80…

中国剩余定理(孙子定理)的证明和c++求解

《孙子算经》里面的"物不知数"说的是这样的一个题目&#xff1a;一堆东西不知道具体数目&#xff0c;3个一数剩2个&#xff0c;5个一数剩3个&#xff0c;7个一数剩2个&#xff0c;问一共有多少个。 书里面给了计算过程及答案&#xff1a;70*2 21*3 15*2 -105*2 2…

osi七层网络层_OSI层速成课程

osi七层网络层介绍 (Introduction) Have you ever wondered how data is sent through the network from one machine to another? If yes, then the Open System Interconnected model is what you are looking for.您是否曾经想过如何通过网络将数据从一台机器发送到另一台机…

KMP算法求回溯数组的步骤

KMP算法到底是什么原理就不说了&#xff0c;各种资料上讲的明明白白&#xff0c;下面我就如何用代码来实现做一下说明和记录. KMP的核心思想就是&#xff0c;主串不回溯&#xff0c;只模式串回溯。而模式串匹配到第几位时失配&#xff0c;要回溯多少&#xff0c;由模式串本身来…

【.Net】vs2017 自带发布工具 ClickOnce发布包遇到的问题

一、遇到的问题 在安装了vs2017 社区版&#xff08;Community&#xff09;之后 想打包安装程序&#xff08;winform&#xff09; 还是想用之前的 installshield来打包 发现居然打不了&#xff0c;在官网查了 installshield不支持社区版&#xff08;Community&#xff09;&…

windows平台,开发环境变量配置

1.打开我的电脑--属性--高级--环境变量 JAVA配置环境变量变量名&#xff1a;JAVA_HOME 变量值&#xff1a;C:\Program Files\Java\jdk1.7.0 变量名&#xff1a;CLASSPATH 变量值&#xff1a;.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 变量名&#xff1a;Path 变…

如何编写可测试的代码 哈利勒的方法论

Understanding how to write testable code is one of the biggest frustrations I had when I finished school and started working at my first real-world job. 当我完成学业并开始从事第一份现实世界的工作时&#xff0c;了解如何编写可测试的代码是我最大的挫败之一。 T…

【Java入门提高篇】Day6 Java内部类——成员内部类

内部类是什么&#xff0c;简单来说&#xff0c;就是定义在类内部的类&#xff08;一本正经的说着废话&#xff09;。 一个正经的内部类是长这样的&#xff1a; public class Outer {class Inner{} } 这是为了演示而写的类&#xff0c;没有什么luan用&#xff0c;可以看到Inner类…

POJ 1001(高精度乘法 java的2种解法)

方法1: import java.math.BigDecimal; import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);while(sc.hasNext()){String d sc.next();int z sc.nextInt();BigDecimal bd new BigDecimal(d);BigDeci…

Java编写的电梯模拟系统《结对作业》

作业代码&#xff1a;https://coding.net/u/liyi175/p/Dianti/git 伙伴成员&#xff1a;李伊 http://home.cnblogs.com/u/Yililove/ 对于这次作业&#xff0c;我刚开始一点思绪都没有&#xff0c;在老师安排了结对伙伴李伊之后&#xff0c;我的搭档问我&#xff0c;我们需要什么…

HTML属性说明

HTML elements can have attributes, which contain additional information about the element.HTML元素可以具有属性&#xff0c;其中包含有关该元素的其他信息。 HTML attributes generally come in name-value pairs, and always go in the opening tag of an element. Th…

css中的选择器

1.在html中引入css的方法&#xff1a;四种方式: a.行内式(也称内联式) 如: <h1 style"color:red;test</h1> b.内嵌式 <style type"text/css"> h1{ color:red; font-size: 10.5pt; font-family: Calibri, sans-serif; line-height: normal; widow…

javascript的call()方法与apply()方法的理解

先看一段代码 function cat() {} cat.prototype{food:fish,say:function () {console.log(I love this.food);} };var blackCat new cat(); blackCat.say(); 这时&#xff0c;控制台输出 I love fish若此时&#xff0c;有另一个对象 Dog{food:bones and shit}; dog对象没有say…

java排序算法(冒泡,插入,选择,快速,堆,归并,希尔,基数)

import java.util.Arrays; import java.util.LinkedList;/*** * * 各种排序: 冒泡&#xff0c;插入&#xff0c;选择&#xff0c;快速&#xff0c;堆&#xff0c;归并&#xff0c;希尔&#xff0c;基数*/ public class Sorts {//1. 冒泡&#xff1a;//时间复杂度:n(n-1)/2O(n^2…

边界填充算法讲解_边界填充算法

边界填充算法讲解Boundary fill is the algorithm used frequently in computer graphics to fill a desired color inside a closed polygon having the same boundary color for all of its sides.边界填充是在计算机图形学中经常使用的算法&#xff0c;用于在其所有边都具有…

使用Git管理源代码

git是个了不起但却复杂的源代码管理系统。它能支持复杂的任务&#xff0c;却因此经常被认为太过复杂而不适用于简单的日常工作。让我们诚实一记吧&#xff1a;Git是复杂的&#xff0c;我们不要装作它不是。但我仍然会试图教会你用&#xff08;我的&#xff09;基本的Git和远程代…

[.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路---Linux环境搭建

最近朋友托我帮忙研究如何把一个DTCMS部署到Linux下&#xff0c;经过1天的研究&#xff0c;部署基本成功&#xff0c;可能有些细节还未注意到&#xff0c;现在把心得分享一下。过程比预期的要简单 身为.Net程序员&#xff0c;这个问题的第一步可能就是如何搭建一个Linux环境来测…

Sequence point 中文

摘自维基百科&#xff1a; In C[4] and C,[5] sequence points occur in the following places. (In C, overloaded operators act like functions, and thus operators that have been overloaded introduce sequence points in the same way as function calls.) Between ev…

python中pop函数_Python中的Pop函数

python中pop函数什么是弹出功能&#xff1f; (What is the pop function?) The method pop() removes and returns the last element from a list. There is an optional parameter which is the index of the element to be removed from the list. If no index is specified…

第六周学习进度条

日期 任务 听课 编程 阅读 准备考试 日总计 周日 周一 120 300 0 0 420 100 周二 0 120 0 0 120 周三 0 0 0 0 0 周四 0 0 0 0 0 周五 0 0 0 0 0 周六 0 120 100 0 …

1071. 小赌怡情(15)

常言道“小赌怡情”。这是一个很简单的小游戏&#xff1a;首先由计算机给出第一个整数&#xff1b;然后玩家下注赌第二个整数将会比第一个数大还是小&#xff1b;玩家下注t个筹码后&#xff0c;计算机给出第二个数。若玩家猜对了&#xff0c;则系统奖励玩家t个筹码&#xff1b;…

关于年长程序员的5个误传

原文链接&#xff1a;http://kb.cnblogs.com/page/150932/ 英文原文&#xff1a;Five Pervasive Myths About Older Software Developers 最近我刚过完40岁生日&#xff0c;一个朋友向我开玩笑地说“嘿&#xff0c;你已经老了&#xff0c;不适合做程序员了&#xff01;”我虽然…

java中getter_Java中的Getter和Setters解释了

java中getterGetters and setters are used to protect your data, particularly when creating classes. Getter和Setter用于保护数据&#xff0c;尤其是在创建类时。 For each instance variable, a getter method returns its value while a setter method sets or updates…

Loadrunner手动关联详解

Loadrunner手动关联详解 一、关联的含义&#xff1a; 关联&#xff08;correlation&#xff09;&#xff1a;在脚本回放过程中&#xff0c;客户端发出请求&#xff0c;通过关联函数所定义的左右边界值&#xff08;也就是关联规则&#xff09;&#xff0c;在服务器所响应的内容中…

解决Visual Studio禁止使用strlen函数的问题

问题描述&#xff1a; 在学习C的复制构造函数以及复制赋值运算符的重载时&#xff0c;需要用到使用C风格的字符串作为引入&#xff0c;由于我用的是VS2015&#xff08;社区版&#xff09;&#xff0c;在编译时出错。编译器提醒strcpy函数是不安全的&#xff0c;建议改用strlen_…

求整型数组所有子串的和中的最大值

#include <iostream> using namespace std;const int MIN_INT -2147483647;int maxSum(const int *arr, int len){int my_max MIN_INT;int tmp 0;for(int i 0; i < len; i){//从头到尾。。tmp arr[i];//遍历相加。if(my_max < tmp){//更新my_maxmy_max tmp;}…

c语言中的if语句_If ... C中的其他语句解释

c语言中的if语句Conditional code flow is the ability to change the way a piece of code behaves based on certain conditions. In such situations you can use if statements.条件代码流是根据某些条件更改一段代码的行为的能力。 在这种情况下&#xff0c;可以使用if语句…