操作SQL Server的帮助类
可作为以后开发的参考代码,也可以再整理下,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration; using System.Windows.Forms; namespace test1
{
class DataBase
{
private static string connString;
private static SqlConnection Conn;
//获取连接数据库字符串
public static String GetConnString()
{
string connString = "chaiqianD2.Properties.Settings.testConnectionString";
String s = ConfigurationManager.ConnectionStrings[connString].ConnectionString;
return s;
} /**////<summary>
///创建connnection并打开
/// </summary>
public static void Open()
{
GetConnString();
connString = GetConnString();
Conn = new SqlConnection();
Conn.ConnectionString = connString;
try
{
Conn.Open();
}
catch (SqlException ee)
{
MessageBox.Show(ee.Message.ToString() + ee.ToString());
}
} /**////<summary>
///获取connnection
/// </summary>
public static SqlConnection getConnection()
{
Open();
return Conn;
} //执行查询,返回受影响的行数
public static int ExecuteSQL(string cmdString)
{
Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = cmdString;
cmd.Connection = Conn;
cmd.CommandType = System.Data.CommandType.Text;
//返回数据库操作影响的行数
int nAffected = -;
try
{
nAffected = cmd.ExecuteNonQuery();
}
catch (SqlException sqlEx)
{
MessageBox.Show(sqlEx.Message.ToString());
throw sqlEx;
}
finally
{
Conn.Close();
}
return nAffected;
} //返回第一行第一列的数据
public static int ExecuteScalar(string cmdString)
{
Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = cmdString;
cmd.Connection = Conn;
cmd.CommandType = System.Data.CommandType.Text;
//返回数据库操作影响的行数
int count = ;
try
{
count = Int32.Parse(cmd.ExecuteScalar().ToString().Trim());
}
catch (SqlException ee)
{
Conn.Close();
MessageBox.Show(ee.Message.ToString());
count = -; }
finally
{
Conn.Close();
}
return count;
} //关闭连接
public static void Close()
{
if (Conn.State == ConnectionState.Open)
Conn.Close();
} //根据查询语句和在数据集中表的名字,返回DataSet
public static DataSet GetDataSet(String cmdString, String strTableName)
{
Open();
SqlCommand cmd = new SqlCommand(cmdString, Conn);
SqlDataAdapter myAd = new SqlDataAdapter();
myAd.SelectCommand = new SqlCommand(cmdString, Conn); DataSet myDs = new DataSet();
//填充数据
try
{
myAd.Fill(myDs, strTableName);
return myDs;
}
catch (SqlException sqlEx)
{ MessageBox.Show(sqlEx.Message.ToString());
throw sqlEx;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
throw ex;
}
finally
{
Close();
} } //返回datareader
public static SqlDataReader GetDataReader(string CmdStr)
{
Open();
SqlCommand myCmd = new SqlCommand();
myCmd.Connection = Conn;
myCmd.CommandType = CommandType.Text;
myCmd.CommandText = CmdStr;
SqlDataReader myDr = null;
try
{
//数据读取器关闭时,连接对象自动关闭
myDr = myCmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (SqlException sqlEx)
{
Close();
if (myDr != null)
myDr.Close();
throw sqlEx;
}
return myDr;
} //执行存储过程的函数
public static int ExecuteStoredProcedure(string StoredProcedureStr, SqlParameter[] parameters)
{
Open(); using (SqlCommand cmd = new SqlCommand(StoredProcedureStr, Conn))
{
try
{
if (Conn.State != ConnectionState.Open)
{
Conn.Open();
}
foreach (SqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
cmd.CommandType = CommandType.StoredProcedure;
int rows = cmd.ExecuteNonQuery();
Close();
return rows;
}
catch (SqlException E)
{
MessageBox.Show(E.Message.ToString());
throw E;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return -; }
finally
{
Close();
} } } //
public static int ExecuteNonQuery(string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
} //
private static void PrepareCommand(SqlCommand cmd, string cmdText, SqlParameter[] cmdParms)
{
Open();
cmd.Connection = Conn;
cmd.CommandText = cmdText;
cmd.CommandType = CommandType.Text; if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
} public static SqlDataReader ExecuteReader(string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
try
{
PrepareCommand(cmd, cmdText, commandParameters);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch (SqlException ee)
{
Close();
MessageBox.Show(ee.Message.ToString());
return null;
}
} /**//// <summary>
/// 执行存储过程,返回DataSet对象
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string StoredProcedureStr, SqlParameter[] parameters, string tableName){
Open();
DataSet ds = new DataSet();
try
{
if (Conn.State != ConnectionState.Open)
Conn.Open();
SqlDataAdapter command = new SqlDataAdapter(StoredProcedureStr, Conn);
command.SelectCommand.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parameter in parameters)
{
command.SelectCommand.Parameters.Add(parameter);
}
command.Fill(ds, tableName);
Close(); }
catch (System.Data.SqlClient.SqlException ex)
{
MessageBox.Show(ex.Message.ToString() + ex.Number);
throw ex;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
Close();
}
return ds;
} //执行存储过程,返回多个表的结果集
public static DataSet Query(string StoredProcedureStr, SqlParameter[] parameters)
{
Open();
DataSet ds = new DataSet();
try
{
if (Conn.State != ConnectionState.Open)
Conn.Open();
SqlDataAdapter command = new SqlDataAdapter(StoredProcedureStr, Conn);
command.SelectCommand.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parameter in parameters)
{
command.SelectCommand.Parameters.Add(parameter);
}
command.Fill(ds);
Close(); }
catch (System.Data.SqlClient.SqlException ex)
{
MessageBox.Show(ex.Message.ToString() + ex.Number);
throw ex;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
Close();
}
return ds;
} //
public static void ShowSqlException(SqlException ex)
{
if (ex == null)
return;
// uses SQLServer 2000 ErrorCodes
switch (ex.Number)
{
case :
// SQL Server does not exist or access denied.
case :
// Invalid Database
case :
// Login Failed
break;
case :
MessageBox.Show("外键约束!");
// ForeignKey Violation
break;
case :
// DeadLock Victim
break;
case :
MessageBox.Show("违反约束,插入重复值!");
break;
case :
MessageBox.Show("违反唯一约束,插入重复值!");
// Unique Index/Constriant Violation
break;
default:
// throw a general DAL Exception
break;
}
}
}
}
操作SQL Server的帮助类的更多相关文章
- SQL Server学习之路(七):Python3操作SQL Server数据库
0.目录 1.前言 2.准备工作 3.简单测试语句 4.提交与回滚 5.封装成类的写法 1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话, ...
- [转]C#操作SQL Server数据库
转自:C#操作SQL Server数据库 1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlComman ...
- 数据库SQL Server2012笔记(七)——java 程序操作sql server
1.crud(增删改查)介绍:create/retrieve/update/delete 2.JDBC介绍 1)JDBC(java database connectivity,java数据库连接) 2 ...
- PHP操作SQL Server 2008/2012
PHP操作SQL Server驱动,微软官方提供2个版本,Version 2.0 和 Version 3.0 Version 2.0 版本支持的操作系统有: Windows Server 2003 S ...
- 使用php来访问操作sql server
使用php来访问操作sql server 在此分成三步走: 第一部:查看配置,下载文件 首先查看自己的php和sql server版本 Php文件输入echo PHP_VERSION 运行脚本就可以 ...
- Nodejs 操作 Sql Server
Nodejs 操作 Sql Server Intro 最近项目需要爬取一些数据,数据有加密,前端的js又被混淆了,ajax请求被 hook 了,有些复杂,最后打算使用 puppeteer 来爬取数据. ...
- Python 学习笔记:Python 操作 SQL Server 数据库
最近要将数据写到数据库里,学习了一下如何用 Python 来操作 SQL Server 数据库. 一.连接数据库: 首先,我们要连接 SQL Server 数据库,需要安装 pymssql 这个第三方 ...
- ORM之Dapper操作Sql Server和MySql数据库
1.为什么选择Dapper 1)轻量. 2)速度快.Dapper的速度接近与IDataReader,取列表的数据超过了DataTable. 3)支持多种数据库.Dapper可以在所有Ado.net P ...
- 基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD
完成一个RESTful服务,提供几个访问接口,用来操作较简单的联系人信息,数据保存在Sql Server数据库中. 1.使用STS创建工程. 使用STS创建RESTful工程,可以参考: <用S ...
随机推荐
- 异步任务中的重新进入(Reentrancy)
一个按钮,点击执行一个任务.我们可能直接在它的 Click 事件中写下了执行任务的代码. 一般我们无需担心这样的代码会出现什么问题——但是,这样的好事情只对同步任务有效:一旦进入了异步世界,这便是无尽 ...
- 如何用OpenCV跟踪鼠标操作
转载:如何用OpenCV跟踪鼠标操作 http://blog.skyoung.org/2014/05/01/how-to-track-mouse/ 在视频第一帧手动标记出目标的位置是在线视觉跟踪中最基 ...
- Java中16进制与字符串之间的相互转换
笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发现存在一个问题-->字符串转为16进制后再转回来,英文正常,中文出现乱码 经过考虑决定通过以下方式进 ...
- C# 线程间不能调用剪切板的问题
最近做一个项目,需要用到线程,而且要用到剪切板,创建了一个子线程之后发现在子线程中剪切板上获取不到数据,当时特别纳闷,上网查资料,最后终于搞定,现将解决方法归纳如下: 第一步: public void ...
- spring深入内容
https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/index.html
- mysql+matlab配置
mysql 中一直出现'> 单双引号没有配对 mysql 连接matlab 1, 到mysql官网下载 http://dev.mysql.com/downloads/connector/j/(m ...
- python中format函数学习笔记
简而言之,format函数就是用{}来代替之前的输出字符时使用的% print('my name is %s and I am %d years old' % ('porsche',23)) 下面详细 ...
- Asp.net Mvc 过滤器执行顺序
Asp.net Mvc 过滤器执行顺序: IAuthorizationFilter(OnAuthorization)----->IActionFilter(OnActionExecuting)- ...
- 数据库表数据传输到Oracle方案
方案步骤为:数据导出到文件(增量或全量),通知接口文件就绪(上传到ftp或提供下载url),接收方下载文件,解析文件并入库.Oracle需要建立对应的临时表和正式表,入库步骤为:清空临时表,批量插入数 ...
- javascript基础-js函数
一.创建函数的方式 1)普通方式 function cal( num1, num2 ) { return num1+num2; } 2)使用变量初始化方式 var plus = function(nu ...