SqlHelper分享
using Model;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DAL
{
public static class SqlHelper
{
//public static string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString.ToString();
public static string conStr = "server=***;uid=sa;pwd=******;database=TripMaster"; /// <summary>
/// 用一个sql语句和可变的SQLParameter数组增删改数据库的数据并且返回受影响的行数,当受影响行数为0时返回的是负数
/// </summary>
/// <param name="cmdStr">sql语句</param>
/// <param name="sqlParams">params形的变量数组</param>
/// <returns>返回受影响的行数</returns>
public static int ExecuteNonQuery(string cmdStr, params SqlParameter[] sqlParams)
{
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand(cmdStr, con))
{
if (sqlParams != null)
{
cmd.Parameters.AddRange(sqlParams);
}
con.Open();
return cmd.ExecuteNonQuery(); }
}
} /// <summary>
/// 使用一个sql语句来查找数据库,返回查找数据的第一行第一列的数据
/// </summary>
/// <param name="cmdStr">sql语句</param>
/// <param name="sqlParams">params形式的SqlParameters数组</param>
/// <returns>返回所查找信息第一行第一列的数据,类型未知,所以用object接收</returns>
public static object ExecuteScalar(string cmdStr, params SqlParameter[] sqlParams)
{
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand(cmdStr, con))
{
if (sqlParams != null)
{
cmd.Parameters.AddRange(sqlParams);
}
con.Open();
return cmd.ExecuteScalar(); }
}
} /// <summary>
/// 使用一个sql语句查找数据返回一个dataTable;
/// </summary>
/// <param name="cmdStr">sql语句</param>
/// <param name="sqlParams">params形式的SqlParameter数组</param>
/// <returns>返回一张表DataTable</returns>
public static DataTable ExecuteDataTable(string cmdStr, params SqlParameter[] sqlParams)
{
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand(cmdStr, con))
{
con.Open();
if (sqlParams != null)
{
cmd.Parameters.AddRange(sqlParams);
}
using (SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
return dt;
}
} }
} /// <summary>
/// 使用一个sql语句查找数据库信息,返回一个SqldataReader,封装这一个方法时要注意,cmd是可以关闭的,
/// 而适配器在读取数据的时候con是不能关闭的
/// 所以要在适配器的创建里面加上参数System.Data.CommandBehavior.CloseConnection,
/// 这个参数的意思是当适配器关闭的时候顺便也关闭con,就是con直到不再从数据库读取数据时才可以关闭
/// </summary>
/// <param name="cmdStr">sql语句</param>
/// <param name="sqlParams">params形式的SqlParameters数组</param>
/// <returns>返回一个SqlDatareader可以进行读取数据</returns>
public static SqlDataReader ExecuteReader(string cmdStr, params SqlParameter[] sqlParams)
{
SqlConnection con = new SqlConnection(conStr);
using (SqlCommand cmd = new SqlCommand(cmdStr, con))
{
if (sqlParams != null)
{
cmd.Parameters.AddRange(sqlParams);
}
try
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
return reader;
}
catch
{
con.Close();
con.Dispose();
throw;//不抛出这个就会报错
}
finally
{ }
} } public static int ExcuteAddMany(string cmdStr, string[] tempArray, params SqlParameter[] sqlParams)
{
DataTable table = new DataTable();
table.Columns.Add("Name");
table.Columns.Add("LayerNum"); for (int i=0; i<tempArray.Length;i++)
{
DataRow row = table.NewRow();
row["Name"] = tempArray[i].ToString();
row["LayerNum"] = 0;
table.Rows.Add(row);
} string connectionStr = "server=PC-201701130905\\B;uid=sa;pwd=s07j08b11;database=TripMaster";
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionStr))
{
bulkCopy.BatchSize = table.Rows.Count;
bulkCopy.DestinationTableName = "SQLBulkCopyTest";//在插入的目标表
//DataTable列名与数据库列名的映射
bulkCopy.ColumnMappings.Add("LayerNum", "LayerNum");
bulkCopy.ColumnMappings.Add("Name", "Name");
bulkCopy.WriteToServer(table);//写入到数据库中
}
return 1; } }
}
SqlHelper分享的更多相关文章
- 不该活着的SqlHelper和DBHelper
前言: 还记得刚学ADO.NET的情景么? 还记得当年是怎么从ADO.NET被忽悠到用SqlHelper的么? 话说从入门到走上工作岗位那些年,我们就一直被纯纯地教导或引导,ADO.NET太原始,得封 ...
- 分享一个html+js+ashx+easyui+ado.net权限管理系统
EasyUI.权限管理 这是个都快被搞烂了的组合,但是easyui的确好用,权限管理在项目中的确实用.一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得 ...
- SQLHelper
今天学习了.net后,经过老师的一番讲解,似乎对它越来越渴望了,希望自己在接下来的学习当中,能很好的驾驭.net,加油吧, 下面我分享一个操作SQL数据库的代码大全,谢谢观赏.嘿嘿,还是比较长的哦, ...
- ADO.NET复习——自己编写SqlHelper类
今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...
- 使用 Microsoft.ApplicationBlocks.Data SqlHelper 查询超时以及解决方案
提示: 后面附有文件,不喜欢看吐槽的,直接到文章结尾下载 摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以 ...
- 自用LogSystem入库分享
.mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...
- 使用C#编写SqlHelper类
无聊的周末,学习.编码无力.想找点事干但又不知道干点什么,猛然发现自己学过的SqlHelper快忘记了.于是乎虎躯一震心想怎能如此堕落下去,立马打开电脑,双手摸上键盘.写下此文作为学习过程中的复习,并 ...
- 快速拥有各种数据访问SqlHelper
常加班食不按时,偶得清闲嘴溃疡. 美食一顿成泡汤,自此自认忙命人. 这就是此情此景的我,回来聊代码. 列举ADO.NET中的五个主要对象,并简单描述? 答:Connection连接对象,Command ...
- 分享 Xamarin.android 关于使用SQLiteOpenHelper的小白经验
关于使用SQLiteOpenHelper的使用,对于小白的我,百度啦相当多的大神的介绍,均未能让我这新手(零基础)成功学会,参考了http://www.cnblogs.com/yaozhenfa/p/ ...
随机推荐
- CentOS6—HAProxy安装与配置
概述 Haproxy下载地址:http://pkgs.fedoraproject.org/repo/pkgs/haproxy/ 关闭SElinux.配置防火墙 1.vi /etc/selinux/co ...
- 【ASP.NET】UCenter实现多站点同步注册
问题描述 上一篇文章写了[ASP.Net]UCenter实现多站点同步登录退出 在整合论坛的时候,同步注册也是相当必要的一个功能:将论坛注册的用户同步到自己的网站,自己网站注册的用户同步到论坛. 官方 ...
- 【转】使用Jasob混淆javascript代码
在平常的web开发中,我们时常需要写一些js的类库,当我们发布自己产品的时候,不得不把源代码分发出去:但是这样就会泄露自己的代码.今天使用了一下Jasob感觉不错: 使用Jasob,我们的JavaSc ...
- Codeforces 965E Short Code 启发式合并 (看题解)
Short Code 我的想法是建出字典树, 然后让后面节点最多的点优先向上移到不能移为止, 然后gg. 正确做法是对于当前的节点如果没有被占, 那么从它的子树中选出一个深度最大的点换到当前位置. 用 ...
- L3-001 凑零钱 (30 分) dfs加后缀剪枝
韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债.韩梅梅手边有 1 枚来自各个星球的硬币,需要请你帮她盘算一下,是 ...
- 052 kafka对topic的增删改查操作
一:create 1.开始使用命令 2.创建 bin/kafka-topics.sh --create --topic beifeng --zookeeper linux-hadoop01.ibeif ...
- Webmin的安装
Webmin的安装很简单,下面就详细说一下安装步骤. 1.用ssh客户端软件登陆服务器2.切换目录到root下,命令是:cd /root/3.下载Webmin的安装文件,命令是:wget http:/ ...
- 【python】常用第三方模块
No1: [Pillow]图像处理标准库 缩放 from PIL import Image # 打开一个jpg图像文件,注意是当前路径: im = Image.open('test.jpg') # 获 ...
- Postman 使用技巧之多环境测试及接口依赖关系处理
一.前言 在日常开发中,除了正常的单元测试,某些情况我们还需要测试 HTTP 接口,团队中目前使用的是「 Postman 」这款 API调试 . HTTP 请求工具.通常我们将经常要测试的接口按照项目 ...
- vue cli3.0 结合echarts3.0和地图的使用方法
echarts 提供了直观,交互丰富,可高度个性化定制的数据可视化图表.而vue更合适操纵数据. 最近一直忙着搬家,就没有更新博客,今天抽出空来写一篇关于vue和echarts的博客.下面是结合地图的 ...