菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using Microsoft.Win32; namespace SqlHelp
{
/// <summary>
/// 定义SqlParameter所需的参数对象
/// </summary>
public class Parameter
{
/// <summary>
/// 参数集合构造函数
/// </summary>
/// <param name="paramname">参数名称</param>
/// <param name="value">参数所对应的对象的值</param>
public Parameter(string paramname, object value)
{
this.ParamName = paramname;
this.Obj = value;
}
/// <summary>
/// 参数名称
/// </summary>
public string ParamName
{
get;
set;
}
/// <summary>
/// 参数名称所对应的对象的值
/// </summary>
public object Obj
{
get;
set;
}
}
/// <summary>
/// SqlHelper ^_^ !
/// </summary>
public class SqlHelper
{
/// <summary>
/// 连接字符串字段
/// </summary>
private static string connStr; /// <summary>
/// SQL连接字符串属性
/// </summary>
public static string ConnStr
{
get { return SqlHelper.connStr; }
set { SqlHelper.connStr = value; }
} private static SqlParameter[] GetSqlParameterToArr(List<Parameter> listP)
{
List<SqlParameter> list = new List<SqlParameter>();
foreach (var item in listP)
{
list.Add(new SqlParameter(item.ParamName, item.Obj));
}
return list.ToArray();
} /// <summary>
/// 执行TSQL 语句并返回受影响的行
/// </summary>
/// <param name="sql">需要执行的sql语句</param>
/// <returns></returns> public static int ExecuteNonQuery(string sql)
{
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
return cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 执行TSQL 语句并返回受影响的行
/// </summary>
/// <param name="sql">需要执行的sql语句</param>
/// <param name="paramList">参数的泛型集合</param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql, List<Parameter> paramList)
{
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(GetSqlParameterToArr(paramList));
return cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 执行查询,并返回查询所返回的结果集中第一行的第一列
/// </summary>
/// <param name="sql">需要执行的sql语句</param>
/// <returns></returns> public static object ExecuteScalar(string sql)
{
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
return cmd.ExecuteScalar();
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
/// <summary>
/// 执行查询,并返回查询所返回的结果集中第一行的第一列
/// </summary>
/// <param name="sql">需要执行的sql语句</param>
/// <param name="paramList">参数的泛型集合</param>
/// <returns></returns>
public static object ExecuteScalar(string sql, List<Parameter> paramList)
{
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(GetSqlParameterToArr(paramList));
return cmd.ExecuteScalar();
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 返回已经填充结果的DataSet
/// </summary>
/// <param name="sql">需要执行的sql语句</param>
/// <returns></returns> public static DataSet ExecuteDataSet(string sql)
{
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
return dataset;
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 返回已经填充结果的DataSet
/// </summary>
/// <param name="sql">需要执行的sql语句</param>
/// <param name="paramList">参数的泛型集合</param>
/// <returns></returns>
public static DataSet ExecuteDataSet(string sql, List<Parameter> paramList)
{
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(GetSqlParameterToArr(paramList));
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
return dataset;
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 返回查询结果集所返回的字段值的泛型集合
/// </summary>
/// <param name="sql">需要执行的sql语句</param>
/// <returns></returns> public static List<object> ExecuteReader(string sql)
{
List<object> obj = new List<object>();
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
for (int i = ; i < reader.FieldCount; i++)
{
obj.Add(reader.IsDBNull(i) ? "空值" : reader.GetValue(i));
}
}
return obj;
}
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 返回查询结果集所返回的字段值的泛型集合
/// </summary>
/// <param name="sql">需要执行的sql语句</param>
/// <param name="paramList">参数的泛型集合</param>
/// <returns></returns>
public static List<object> ExecuteReader(string sql, List<Parameter> paramList)
{
List<object> obj = new List<object>();
try
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(GetSqlParameterToArr(paramList));
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
for (int i = ; i < reader.FieldCount; i++)
{
obj.Add(reader.IsDBNull(i) ? "空值" : reader.GetValue(i));
}
}
return obj;
}
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
} /// <summary>
/// 获取SqlServer数据库实例名数组
/// </summary>
/// <returns></returns>
public static string[] GetInstances()
{
RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
string[] instances = (string[])reg.GetValue("InstalledInstances", "");
try
{
if (instances.Length > )
{
for (int i = ; i < instances.Length; i++)
{
if (instances[i] == "MSSQLSERVER")
{
instances[i] = System.Environment.MachineName;
}
else
{
instances[i] = System.Environment.MachineName + @"\" + instances[i];
}
}
}
return instances;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}
测试:
1、获取实例
窗体拖入ComboBox控件,设置name值为cbx_server
引入SqlHelper
using SqlHelp
窗体load事件加入:
cbx_server.Items .AddRange ( GetInstances());
2、执行带参数查询方法
窗体拖入按钮,name为Bt_Test,并且拖入TextBox控件,name值为txt_Param
引入SqlHelper
using SqlHelp
在按钮点击事件中加入:
private void Bt_Test_Click(object sender, EventArgs e)
{
SqlHelper.ConnStr = @"Data Source=localhost;Initial Catalog=UFsystem;Integrated Security=True";
Parameter param = new Parameter("@id", txt_Param.Text);
List<Parameter> list = new List<Parameter>();
list.Add(param);
List<object> obj = SqlHelper.ExecuteReader(@"select * from ua_user where cuser_id=@id", list);
foreach (var item in obj)
{
Console.WriteLine(item);
}
}
输出:
admin
admin
空值
True
空值
空值
空值
空值
正在学习c#,有什么地方不对或不合适的请指教。
菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类的更多相关文章
- tensorflow编程学习路线及笔记
话不多说,直接上图! 关于人工智能算法学习思路,欢迎浏览我的另一篇随笔:如果你想开始学习算法,不妨先了解人工智能有哪些方向? 关于python编程学习路线及笔记,欢迎浏览我的另一篇随笔:python编 ...
- c#学习笔记04——ADO.NET
ADO.NET结构:ADO.NET建立在几个核心类之上,这些类可以分为两组 包含和管理数据的类:DataSet DataTable DataRow DataRelation... 链接数据源的类:Co ...
- 菜鸟教程之学习Shell script笔记(上)
菜鸟教程之学习Shell script笔记 以下内容是,学习菜鸟shell教程整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-shell.ht ...
- ADO.Net笔记整理(一)
几次装机,Notes已烟消云散,近日因为Node.js死活搞不定,无奈装机,备份好的东东,没想到磁盘扇区出现异常,可能是PE启动盘的病毒,只好将磁盘全部重新分区,恢复数据也懒得恢复了,日积月累关乎将来 ...
- ADO.NET复习——自己编写SqlHelper类
今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...
- JavaSE学习笔记(5)---内部类和String类
JavaSE学习笔记(5)---内部类和String类 一.内部类基础 转自菜鸟教程 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来 ...
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- MXNet设计笔记之:深度学习的编程模式比较
市面上流行着各式各样的深度学习库,它们风格各异.那么这些函数库的风格在系统优化和用户体验方面又有哪些优势和缺陷呢?本文旨在于比较它们在编程模式方面的差异,讨论这些模式的基本优劣势,以及我们从中可以学到 ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- Windows Phone获得IsolatedStorage中指定目录下的所有文件
在Windows Phone 中对隔离存储空间中的文件操作需要通过System.Io.IsolatedStorage下的类进行操作 获得指定文件夹下的所有文件: 参数:是指定文件夹的路径加上通配符,格 ...
- TP开发小技巧
TP开发小技巧原文地址http://wp.chenyuanzhao.com/wp/2016/07/23/tp%E5%BC%80%E5%8F%91%E5%B0%8F%E6%8A%80%E5%B7%A7/ ...
- sizeof(int *) 和 sizeof(int)型的大小问题
小问题,暂时记录注意一下 printf("sizeof(int): %d\n", (int)sizeof(int)); printf("sizeof(int ...
- HTML&CSS基础学习笔记1.31-像素和相对长度
像素和相对长度 之前的笔记中,我们提到过用属性width.height来设置图片的尺寸,它们的单元都是”px(像素)”.长度单位总结一下,目前比较常用到px(像素).em.% 百分比,要注意其实这三种 ...
- Tr A
Problem Description A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. Input 数据的第一行是一个T,表示有T组数据. 每组数据的第 ...
- Facebook 开源三款图像识别人工智能软件
Facebook今天开源了三款人工智能图像分割(Image Segmentation)软件,分别是DeepMask.SharpMask和MultiPathNet,三款工具相互配合完成一个完整的图像识别 ...
- 【转】Android理解:显式和隐式Intent---- try catch
原文网址:http://blog.csdn.net/xiao__gui/article/details/11392987 Intent是Android初学者比较难理解的一个东西.我这里以通俗易懂的语言 ...
- SQL SELECT INTO 语句
SQL SELECT INTO 语句可用于创建表的备份复件. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中. SELECT INTO 语句常用 ...
- SVN 服务器IP地址变更后客户端的修改
找到需要更新修改的代码目录: 在右键菜单TortoiseSVN>Relocate……对话框中可以更改svn服务器地址. so easy!
- 「Githug」Git 游戏通关流程
Githug 他喵的这是个啥!?难道不是 GitHub 拼错了么,和 Git 什么关系? 和游戏又有什么关系? 其实,他的元身在这里:https://github.com/Gazler/githug ...