using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient; namespace WindowsFormsApplication1.DAL
{
/**
* 实现对SqlServer的基本操作
* 1.SqlConnection对象连接数据库;
* 2.SqlCommand对象,负责SQL语句的执行和存储过程的调用,并获取三种返回模式
* 3.执行存储过程,和带参数的存储过程
* 4.执行带参数的sql语句
*/
public class SqlServerHelp
{
//写在配置中:string ConnectionString = ConfigurationManager.ConnectionStrings["MyConnection"].ToString();
//配置中的写法
//<connectionStrings>
// <add name="SqlConnection" providerName="System.Data.SqlClient" connectionString="server=.;uid=sa;pwd=accp;database=pubs"/>
//</connectionStrings>
//或
//<appSettings>
// <add name="SqlConnection" providerName="System.Data.SqlClient" connectionString="server=.;uid=sa;pwd=accp;database=pubs"/>
//</appSettings> //Sql 验证:string ConnectionString = "user id=sa;password=;initial catalog=northwind;datasource=localhost;connect Timeout=20";
//Windows 身份验证:连接字符串:Data Source =数据库程序实例名,Initial Catalog=数据库名, Integrated Security=True 表示系统模式登录,不需要用户名密码,有最高权限
static string ConnectionString = @"Data Source=DESKTOP-IF0RC4M\SQL2012;Initial Catalog=mySqlServer;Integrated Security=True";
//执行sql语句,返回一个值
public static string GetStr()
{
string val = "";
//传入连接字符串连接
SqlConnection con = new SqlConnection(ConnectionString);
try
{
con.Open();
//传入sql语句和连接类
SqlCommand com = new SqlCommand("SELECT * FROM dbo.Table_1", con);
//返回一个值(第一行第一列)
val = com.ExecuteScalar().ToString();
con.Close(); //必须关闭,可以用USING方式写
}
catch
{
con.Close();
}
return val;
}
//执行sql语句,返回多行值
public static DataTable GetRows()
{
DataTable dt = new DataTable();
//传入连接字符串连接
SqlConnection con = new SqlConnection(ConnectionString);
try
{
con.Open();
//传入sql语句和连接类
SqlCommand com = new SqlCommand("SELECT * FROM dbo.Table_1", con);
//返回一个值(第一行第一列)
SqlDataReader dr = com.ExecuteReader();
dt.Load(dr);//直接把结果放进TB表中
//while(dr.Read()) //返回ture表示能读取一行,表示读取全部行
//{
// val = dr.GetString(0);//GetString(0)获取第一个字段的值
//} //dr.Read();//执行读取一行,返回值是bool
//val = dr.GetString(0);
con.Close();
}
catch
{
con.Close();
}
return dt;
}
//执行sql语句,返回返回一张表
public static DataTable GetTable()
{
DataTable dt = new DataTable();
//传入连接字符串连接
SqlConnection con = new SqlConnection(ConnectionString);
try
{
con.Open();
//传入sql语句和连接类
//SqlCommand com = new SqlCommand("SELECT * FROM dbo.Table_1", con);
//SqlDataAdapter sda = new SqlDataAdapter(com);
//另一种写法
SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM dbo.Table_1", con);
sda.Fill(dt);
con.Close();
}
catch
{
con.Close();
}
return dt;
}
//带参数的sql语句
public static string SqlStr_parameters()
{
string val = "";
//传入连接字符串连接
SqlConnection con = new SqlConnection(ConnectionString);
try
{
con.Open();
//传入sql语句和连接类
SqlCommand com = new SqlCommand("SELECT * FROM dbo.Table_1 WHERE a=@a", con); //特别注意的是,如果参数是字符串,在这里不能加'',
//写法一
//SqlParameter sp = new SqlParameter("@a",SqlDbType.Char,10); //创建参数实例
//sp.Value = "1";
//com.Parameters.Add(sp); //写法一
//SqlParameter sp = new SqlParameter("@a",SqlDbType.Char,10){Value = "1"}; //创建参数实例
//com.Parameters.Add(sp); //写法三(推荐)
SqlParameter sp = new SqlParameter("@a", "");
sp.Value = "";
com.Parameters.Add(sp); //如果参数多的时候可以写成数组的形式
//SqlParameter[] sp1 =new SqlParameter[]{ new SqlParameter("@a", "1") };
//com.Parameters.AddRange(sp1); //返回一个值(第一行第一列)
val = com.ExecuteScalar().ToString();
con.Close(); //必须关闭,可以用USING方式写
}
catch(Exception ea)
{
con.Close();
}
return val;
}
//带参数的存储过程
public static void Sql_procedure()
{
string val = "";
//传入连接字符串连接
SqlConnection con = new SqlConnection(ConnectionString);
try
{
/*存储过程
* ALTER PROC usp_execSqlStr
@a CHAR(10)
AS
BEGIN
SELECT * FROM dbo.Table_1 WHERE a=@a
END
*/
con.Open();
//传入sql语句和连接类
SqlCommand com = new SqlCommand("usp_execSqlStr", con); //特别注意的是,如果参数是字符串,在这里不能加'',
//com.CommandType = CommandType.Text; //表示sql语句
com.CommandType = CommandType.StoredProcedure ; //表示存储过程
SqlParameter sp = new SqlParameter("@a", "");
com.Parameters.Add(sp);
val = com.ExecuteScalar().ToString(); //存储过程的执行和一般的sql语句的执行是一样的
con.Close(); //必须关闭,可以用USING方式写
}
catch (Exception ea)
{
con.Close();
}
}
}
}

数据库帮助类 SqlServerHelp的更多相关文章

  1. 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~

    最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...

  2. DataAccess通用数据库访问类,简单易用,功能强悍

    以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...

  3. Android打造属于自己的数据库操作类。

    1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...

  4. 我也来写:数据库访问类DBHelper

    一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

  5. PHP 数据库操作类:ezSQL

    EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.htmlezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.o ...

  6. 通用数据库操作类,前端easyui-datagrid,form

    实现功能:     左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[ ...

  7. MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)

    MySQL数据库工具类之——DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下: using MySql.Data.MySqlClient; us ...

  8. 我也来写:数据库访问类DBHelper(转)

    一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

  9. php : mysql数据库操作类演示

    设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...

随机推荐

  1. c#实现对登陆信息的反馈,实现对网站登录密码的扫描

    最近发现我们学校的电信上网改密码的页面很简单,没有验证码,于是我就很好奇,后来发现原来是我们学校的电信的那个改密码的页面有漏洞于是就可以通过扫描账号免费上网 原理就是对修改密码的页面进行POST请求 ...

  2. keras_基本网络层结构(1)_常用层

    参考文献: https://blog.csdn.net/sinat_26917383/article/details/72857454 http://keras-cn.readthedocs.io/e ...

  3. 找到链表的倒数第k个节点 python

    题目:给定一个链表的头节点,输出链表倒数第k个节点的值 分析:最简单的思路就按顺序访问链表节点,得到链表的长度x之后,再次从头节点出发,访问到第x-k+1个节点时,就是链表倒数第k个节点,但是这样的方 ...

  4. 20145237 Exp9 Web安全基础实践

    基础问题回答 SQL注入攻击原理,如何防御: 部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,黑客利用这个bug在数据输入区恶意填入脚本,当数据被传回后台,黑客所填入的脚本语句被运行, ...

  5. Jmeter执行Java请求

    Jmeter执行Java请求(QQ交流群:577439379) 一.打开Eclipse,创建一个Java工程 二.拷贝jmeter所依赖的jar包 将jmeter中,\lib\ext目录下的Apach ...

  6. jdk版本对应数字

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springfr ...

  7. 异步编程 In .NET(转载)

    概述 在之前写的一篇关于async和await的前世今生的文章之后,大家似乎在async和await提高网站处理能力方面还有一些疑问,博客园本身也做了不少的尝试.今天我们再来回答一下这个问题,同时我们 ...

  8. cowboy添加验证码

    参考的http://beebole.com/blog/erlang/how-to-implement-captcha-in-erlang-web-application/,移到cowboy,修改了下: ...

  9. NGINX 添加MP4、FLV视频支持模块

    由于公司网站需要放置视频,但是默认的服务器环境是没有编译这个支持的模块,视频文件只能缓冲完了在播放,非常麻烦.   之前呢也安装了一个nginx_mod_h264_streaming来支持,效果很不错 ...

  10. Bootstrap-Plugin:弹出框(Popover)插件

    ylbtech-Bootstrap-Plugin:弹出框(Popover)插件 1.返回顶部 1. Bootstrap 弹出框(Popover)插件 弹出框(Popover)与工具提示(Tooltip ...