操作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 ...
随机推荐
- python之json扩展
#!/usr/bin/env python # -*- coding: utf8 -*- # __Author: "Skiler Hao" # date: 2017/4/9 15: ...
- javascript把json串转成对象
// 这个是待转的json串 var jstr = "{'a':100,'b':'aaa'}"; // 经过下面语句把这个语句描述的对象数据,赋给这个m对象了 eval (&quo ...
- FastAdmin 前端页面传参笔记
FastAdmin 前端页面传参笔记 看到 QQ 群里的小伙伴询问如何传参,然后在社区里找到一笔记帖子 1 还要参考在线文档控制器部分2. 引用 Karson 的回复: 如果我们需要自己在控制器中透传 ...
- jeecg中service中注入jdbc的注解
@Resource private JdbcTemplate jdbcTemplate;
- dubbo相关的知识点总结
dubbo最近提交到了apache,成为了apache的孵化项目,又开始活跃起来了.就官方在git上面的说明文档和其他资料,学习总结以下dubbo的一些知识点. .The dubbo protocol ...
- 关于FPGA电源精度要求
FPGA对DC-DC精度的要求不断提升 FPGA厂商不断采用更先进的工艺来降低器件功耗,提高性能,同时FPGA对供电电源的精度要求也越加苛刻,电压必须维持在非常严格的容限内,如果供电电压范围超出了规范 ...
- Vim编辑器基本操作学习(一)
最近在服务端编辑文件总不可避免要使用vim编辑器,下面就对学习到的常用命令进行总结,以便自己以后查看. 基本编辑命令 删除字符:x 删除一行:dd 删除换行符:J,同时将两行合并成一行 撤 ...
- Joker的自动化之路
系统篇 颜色 黄绿+金色 使用mac系统常用工具(包含svn,vim,crt,redis,php5,网络性能命令) 计算机硬件 linux发展史 cent ...
- 线程的run( ) 和 start( ) 区别
Run() : run()就是个普通方法,可以调用执行,但是是同步调用,没有异步的效果. Run()方法就是个普通方法,可以调用多次 Start(): 通知线程规划期,此线程已经准备就绪,等待调用 ...
- 如何混编c++
1. 如何混编c++ 用 Xcode4 创建一个 工程,如果在任意一个文件AAA.h的头部加入 #include<string> using namespace std; 编译运行, ...