【ADO.NET】6、SQLHelper简单封装
using System.Data.SqlClient;
using System.Configuration;
引用:System.Configuration
连接字符串放到配置文件中
新建一个类,写如下些方法,进行数据的操作
// ExecuteNonQuery 构建
public static int ExecuteNonQuery(string sql,params SqlParameter[] parameters)
{
string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(Str))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
foreach (SqlParameter par in parameters)
{
cmd.Parameters.Add(par);
}
return cmd.ExecuteNonQuery();
}
} } // ExecuteNonQuery 方法的使用
private void button1_Click(object sender, EventArgs e) //单击事件
{
try
{
SQLHelper.ExecuteNonQuery("insert into T_Age(Name,Age) values(@N,@A)", new SqlParameter("@N", txtLogin.Text.Trim()), new SqlParameter("@A", txtAge.Text.Trim()));
MessageBox.Show("插入成功!");
}
catch (Exception ex)
{
MessageBox.Show(string.Format("插入失败!:{0}", ex));
return;
}
} //-----------------------------------------------------------------------------
// ExecuteScalar 构建
public static object ExeccuteScalar(string sql, params SqlParameter[] parameters)
{
string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(Str))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
foreach (SqlParameter par in parameters)
{
cmd.Parameters.Add(par);
}
return cmd.ExecuteScalar();
}
} // ExecuteScalar 方法的使用
private void button2_Click(object sender, EventArgs e) //单击事件
{
int i = Convert.ToInt32(SQLHelper.ExeccuteScalar("select count(*) T_phone"));
MessageBox.Show(Convert.ToString(i));
}
//----------------------------------------------------------------------------- // ExecuteReader 构造 // 不能使用 using
public static SqlDataReader SqlDataReader(string sql, params SqlParameter[] parameters)
{
string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
SqlConnection conn = new SqlConnection(Str);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
foreach (SqlParameter par in parameters)
{
cmd.Parameters.Add(par);
}
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return dr;
} // ExecuteReader 方法的使用
private void button4_Click(object sender, EventArgs e) //单击事件
{
SqlDataReader dr = SQLHelper.SqlDataReader_using("select * from T_Age");
while (dr.Read())
{
MessageBox.Show(Convert.ToString(dr["Name"])); //读取Name字段的值
}
} //-----------------------------------------------------------------------------
// ExecuteDataSet 的构建
public static DataTable ExecuteDataSet(string sql, params SqlParameter[] SqlParmeter)
{
string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(Str))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
foreach (SqlParameter par in SqlParmeter) //遍历增加 SqlParmeter 参数
{
cmd.Parameters.Add(par);
}
DataSet dataset = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataset);
return dataset.Tables[];
}
} // ExecuteDataSet 方法的使用
private void button5_Click(object sender, EventArgs e)
{
DataTable dt = SQLHelper.ExecuteDataSet("select * from T_Age");
for (int i = ; i < dt.Rows.Count; i++)
{
DataRow row = dt.Rows[i];
string name =Convert.ToString(row["Name"]);
MessageBox.Show(name);
}
} //-----------------------------------------------------------------------------
注意:SqlDataReader如果用 using 的话,将执行不了,因为在读取数据的时候是在using以外,无法读取
如下是错误的代码 public static SqlDataReader ExecuteReader_using(string sql, params SqlParameter[] parameters)
{
string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
using (SqlConnection conn = new SqlConnection(Str))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
foreach (SqlParameter par in parameters)
{
cmd.Parameters.Add(par);
}
return cmd.ExecuteReader();
}
}
//-----------------------------------------------------------------------------
【ADO.NET】6、SQLHelper简单封装的更多相关文章
- ADO简单封装(MFC)
简单封装了一下,不是很严谨. /************************************************************************/ /* INSTRUC ...
- .net core 中简单封装Dapper.Extensions 并使用sqlsuger自动生成实体类
引言 由公司需要使用dapper 同时支持多数据库 又需要支持实体类 又需要支持sql 还需要支持事务 所以采用了 dapper + dapperExtensions 并配套 生成实体类小工具的方 ...
- Android AsyncTask 深度理解、简单封装、任务队列分析、自定义线程池
前言:由于最近在做SDK的功能,需要设计线程池.看了很多资料不知道从何开始着手,突然发现了AsyncTask有对线程池的封装,so,就拿它开刀,本文将从AsyncTask的基本用法,到简单的封装,再到 ...
- FMDB简单封装和使用
工具:火狐浏览器+SQLite Manager插件 ; Xcode; FMDB库; 效果: 项目地址: https://github.com/sven713/PackFMDB 主要参考这两篇博客: 1 ...
- Android--Retrofit+RxJava的简单封装(三)
1,继续接着上一篇的讲讲,话说如果像上一篇这样的话,那么我们每一次请求一个结构都要创建一堆的Retrofit对象,而且代码都是相同的,我们可以试试封装一下 先创建一个HttpMethods类,将Ret ...
- okhttp3 get post 简单封装
最近打算在新项目中使用 okhttp3, 简单封装了一下异步 get post 因为 CallBack 也是在子线程中执行,所以用到了 Handler public class MyOkHttpCli ...
- python网页请求urllib2模块简单封装代码
这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码. 原文转自:http://www.jbxue.com/article/16585.html 对python网页请求模块ur ...
- 对pymysql的简单封装
#coding=utf-8 #!/usr/bin/python import pymysql class MYSQL: """ 对pymysql的简单封装 "& ...
- iOS开发——UI篇OC篇&UITableView简单封装
UITableView简单封装 UITableView时iOS开发中使用最多也是最重的一个UI空间,其实在App Store里面的%80以上的应用都用到了这个控件,所以就给大家介绍一下,前面的文章中也 ...
随机推荐
- PHP面向对象编程
IBM 教程:开始了解 PHP 中的对象 简明现代魔法 一篇很好的入门的Class 文章 - 技术分享 - php教程 少走弯路去学习面向对象编程 -- 简明现代魔法
- 仿写thinkphp的I方法
自己定义一个方法仿写thinkphp的I 方法 <?php function I($key="",$default='',$function="") { ...
- 四、XML映射配置文件
MyBatis的XML配置文件包含了影响MyBatis行为甚深的设置和属性信息.XML文档的高层级结构如下: ----configuration配置 --------properties属性 ---- ...
- 谁才是最快的消息队列:ActiveMQ, RabbitMQ[转]
Lately I performed a message queue benchmark, comparing several queuing frameworks (RabbitMQ, Active ...
- Android获取ip地址
原文:http://www.cnblogs.com/android100/p/Android-get-ip.html 1.使用WIFI 首先设置用户权限 <uses-permission and ...
- 【转】使用VisualSVN Server搭建SVN服务器
http://blog.csdn.net/han_yankun2009/article/details/7856992 使用 VisualSVN Server来实现主要的 SVN功能则要比使用原始的 ...
- OOM-killer 线上设置 +vm +OOM机制
http://blog.csdn.net/tenfyguo/article/details/9409743 http://blog.csdn.net/tenfyguo/article/details/ ...
- [转] 引用 Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
PS: Spring ThreadPoolTaskExecutor vs Java Executorservice cachedthreadpool 引用 [轰隆隆] 的 Java自带的线程池Thre ...
- JsonUtil对象与json互转
OrderDto orderDto = JsonUtil.json2Object(json, new TypeRef<OrderDto>() { }); package c ...
- 快速安装VIM开发环境
*Mac上当前用户的.vim目录打包*:附件地址:http://pan.baidu.com/s/1sj5FjZJ 1. 备份好系统的原来的vim配置文件,以备恢复使用: mv ~/.v ...