using System.Data;
using System.Data.SqlClient;
using System.Configuration; namespace WindowsFormsApp3
{
public class DbHelper
{
private static string connStr = ConfigurationManager.ConnectionStrings["Demo"].ToString(); /// <summary>
/// 根据Sql语句返回Table类型数据
/// </summary>
/// <param name="sql">查询Sql语句</param>
/// <returns>Table</returns>
/// <SqlParameter>SqlParameter</SqlParameter>
public static DataTable GetDataTable(string sql, SqlParameter[] sqlParameter = null)
{
DataSet ds = new DataSet();
using (SqlConnection sqlConn = new SqlConnection(connStr))
{
sqlConn.Open();
if (sqlConn.State == ConnectionState.Open)
{
using (SqlCommand cmd = new SqlCommand(sql, sqlConn))
{
if (sqlParameter != null && sqlParameter.Length > )
cmd.Parameters.AddRange(sqlParameter);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
}
}
}
return ds.Tables[];
} /// <summary>
/// 查询数据库是否存在数据
/// </summary>
/// <param name="sql">查询Sql语句</param>
/// <param name="sqlParameter">查询参数</param>
/// <returns>存在返回True,不存在返回False</returns>
public static bool DataIsHasRows(string sql, SqlParameter[] sqlParameter = null)
{
bool HasRows = false;
using (SqlConnection sqlConn = new SqlConnection(connStr))
{
sqlConn.Open();
if (sqlConn.State == ConnectionState.Open)
{
using (SqlCommand cmd = new SqlCommand(sql, sqlConn))
{
if (sqlParameter != null && sqlParameter.Length > )
cmd.Parameters.AddRange(sqlParameter);
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
HasRows = true;
}
}
}
}
}
return HasRows;
}
/// <summary>
/// 执行Sql语句返回受影响行数
/// </summary>
/// <param name="sql">Sql语句</param>
/// <param name="sqlParameter">Sql参数</param>
/// <returns>返回受影响行数</returns>
public static int ExecNonQuery(string sql, SqlParameter[] sqlParameter =null)
{
int num = ;
try
{
using (SqlConnection sqlConn = new SqlConnection(connStr))
{
sqlConn.Open();
if (sqlConn.State == ConnectionState.Open)
{
using (SqlCommand cmd = new SqlCommand(sql, sqlConn))
{
if (sqlParameter != null && sqlParameter.Length > )
cmd.Parameters.AddRange(sqlParameter);
num = cmd.ExecuteNonQuery();
}
}
}
return num;
}
catch
{
return -;
} }
/// <summary>
/// 返回第一行第一列内容
/// </summary>
/// <param name="sql"></param>
/// <param name="sqlParameters"></param>
/// <returns></returns>
public static string ExecScalar(string sql, SqlParameter[] sqlParameter = null)
{
string value = "";
using (SqlConnection sqlConn = new SqlConnection(connStr))
{
sqlConn.Open();
if (sqlConn.State == ConnectionState.Open)
{
using (SqlCommand cmd = new SqlCommand(sql, sqlConn))
{
if (sqlParameter != null && sqlParameter.Length > )
cmd.Parameters.AddRange(sqlParameter);
value = cmd.ExecuteScalar().ToString();
}
}
}
return value;
}
}
}
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<connectionStrings>
<add name="Demo" connectionString="Data Source=127.0.0.1;Initial Catalog=AdventureWorks;Persist Security Info=True;User ID=sa;Password=Sa123"/>
</connectionStrings>
</configuration>

自己整理的的数据操作DbHelper的更多相关文章

  1. SQL不同服务器数据库之间的数据操作整理(完整版)

    ---------------------------------------------------------------------------------- -- Author : htl25 ...

  2. 我的DbHelper数据操作类

    其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要&q ...

  3. DbHelper数据操作类

    摘要:本文介绍一下DbHelper数据操作类 微软的企业库中有一个非常不错的数据操作类.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过 ...

  4. 转载-SQL不同服务器数据库之间的数据操作整理(完整版) .

    ---------------------------------------------------------------------------------- -- Author : htl25 ...

  5. 我的DbHelper数据操作类(转)

    其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要&q ...

  6. C#调用C++的DLL搜集整理的所有数据类型转换方式

    //C#调用C++的DLL搜集整理的所有数据类型转换方式,可能会有重复或者多种方案,自己多测试 //c++:HANDLE(void *) ---- c#:System.IntPtr //c++:Byt ...

  7. SQLServer服务器数据库之间的数据操作(完整版)

    分类: 数据库开发技术 ---------------------------------------------------------------------------------- -- Au ...

  8. 【summary】JQuery 相关css、ajax、数据操作函数或方法

    总结一下JQuery常用的函数方法,更加系统的整理一下. JQuery遍历的一些函数: 函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集 ...

  9. Android 常用数据操作封装类案例

    1.DbHelper类 继承自SQLiteOpenHelper类,实现对数据库的基本操作 package com.example.utils; import android.content.Conte ...

随机推荐

  1. 生产者-消费者问题与quene模块

    生产者-消费者问题与quene模块 下面使用线程锁以及队列来模拟一个典型的案例:生产者-消费者模型.在这个场景下,商品或服务的生产者生产商品,然后将其放到类似队列的数据结构中,生产商品的时间是不确定的 ...

  2. 实现两个DataTable的联合查询

    如方法一描述:将子表的数组追加到主表数组的下面.从而实现类似于视图(单表)的效果. 那么Left Join(Inner Join)和Right Join(Outer Join) 将如何实现呢? 明天仔 ...

  3. android studio 开发中启动android项目报错sdk版本不一致解决方案

    安卓项目开发中新建项目后再run'的时候发现报错com.android.support:appcompat-v7依赖报错 查看下build.gredle所配置的参数: 打开项目的build.gradl ...

  4. 数据质量、特征分析及一些MATLAB函数

    MATLAB数据分析工具箱 MATLAB工具箱主要含有的类别有: 数学类.统计与优化类.信号处理与通信类.控制系统设计与分析类.图像处理类.测试与测量类.计算金融类.计算生物类.并行计算类.数据库访问 ...

  5. Impacket网络协议工具包介绍

    转载自FreeBuf.COM Impacket是一个Python类库,用于对SMB1-3或IPv4 / IPv6 上的TCP.UDP.ICMP.IGMP,ARP,IPv4,IPv6,SMB,MSRPC ...

  6. Arduino基础入门—3.连接 IIC 1602 LCD显示文字

    1. IIC转接板介绍 Arduino Uno R3开发板的外部IO口是非常有限的.在驱动LCD1602时,尽管我们的数据线使用了4线,相对于8线方式减少一半,但是在需要外接多种传感器的应用中,4线驱 ...

  7. Linux下安装xrdp

    ubuntu 打开终端,依次输入如下命令: sudo apt-get install xrdp sudo apt-get install vnc4server tightvncserver cd /h ...

  8. Java包的基本概述

    第七章 7.1 包的基本概述 起因: 在我们设计一个程序的时候(尤其是多人合作),会写一些类来实现功能,但是往往会有重名的现象发生,为了解决这个问题,则专门设计了包.(还有其他作用,下述) 简单理解: ...

  9. Windows32或64位下载安装配置Spark

    [学习笔记] Windows 32或64位下载安装配置Spark:1)下载地址:http://spark.apache.org/downloads.html 马克-to-win @ 马克java社区: ...

  10. 莫比乌斯反演--HDU模板题

    题意:http://acm.hdu.edu.cn/showproblem.php?pid=1695 直接上莫比乌斯模板. #include <bits/stdc++.h> using na ...