using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;
using System.Windows.Forms; namespace MyCommanHelper
{
public class DataBaseHelper
{ #region 字段变量 public static volatile string Connstring = "";
private static volatile OleDbConnection connection = null; #endregion #region 方法 #region Access // Methods
/// <summary>
/// 获取Access2003连接字符串
/// </summary>
/// <param name="sFilePath">Access文件路径</param>
/// <returns></returns>
public static string GetAccess2003ConnectionString(string sFilePath)
{
return ("Provider=Microsoft.JET.OLEDB.4.0;data source=" + sFilePath);
} /// <summary>
/// 获取Access2007连接字符串
/// </summary>
/// <param name="sFilePath">Access文件路径</param>
/// <returns></returns>
public static string GetAccess2007ConnectionString(string sFilePath)
{
return ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sFilePath);
} #endregion #region SqlServer #endregion #region Oracle
public static string GetOracleBlobConnectionString(string sUser, string sPassword, string sServiceName)
{
return ("server=oratest;Data Source=" + sServiceName + ";User ID=" + sUser + ";Password=" + sPassword);
} public static string GetOracleConnectionString(string sUser, string sPassword, string sServiceName)
{
return ("Provider=OraOLEDB.Oracle.1;Data Source=" + sServiceName + ";User ID=" + sUser + ";Password=" + sPassword);
} #endregion #region 公共 /// <summary>
/// 初始化新实例
/// </summary>
/// <returns></returns>
public static bool Init()
{
try
{
connection = new OleDbConnection(Connstring);
return true;
}
catch (Exception)
{
return false;
}
} /// <summary>
/// 执行非查询操作
/// </summary>
/// <param name="sqlStr">执行SQL语句</param>
/// <returns>返回影响行数,值为-1 表示未创建连接实例或执行语句错误</returns>
public static int ExecNonQuery(string sqlStr)
{
int rslt = -1; if (null == connection)
{
MessageBox.Show("无连接实例!");
return rslt;
} try
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
OleDbCommand command = new OleDbCommand(sqlStr, connection);
rslt = command.ExecuteNonQuery();
command.Dispose();
//connection.Close();
//connection.Dispose();
}
catch (Exception ex)
{
throw ex;
}
finally
{
connection.Close();
}
return rslt;
} /// <summary>
/// 获取只包含指定的数据的数据集
/// </summary>
/// <param name="sqlStr">Sql指令</param>
/// <param name="sTable">指定数据</param>
/// <returns>数据集 值为null 表示未创建连接实例</returns>
public static DataSet ExecQuery(string sqlStr, string sTable)
{
DataSet set2 = null;
if (null == connection)
{
MessageBox.Show("无连接实例!");
return set2;
} try
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
OleDbDataAdapter adapter = new OleDbDataAdapter(sqlStr, connection);
DataSet dataSet = new DataSet();
if (dataSet.Tables.Contains(sTable))
{
dataSet.Tables[sTable].Clear();
}
adapter.Fill(dataSet, sTable);
set2 = dataSet;
}
catch (Exception exception)
{
throw exception;
}
finally
{
connection.Close();
//connection.Dispose();
//connection = null;
}
return set2;
} /// <summary>
/// 获得第一行数据
/// </summary>
/// <param name="sql"></param>
/// <param name="sTable"></param>
/// <returns></returns>
public static DataRow GetFirstRow(string sql, string sTable)
{
DataRow row = null;
DataSet set = ExecQuery(sql, sTable);
if (set.Tables[sTable].Rows.Count > 0)
{
row = set.Tables[sTable].Rows[0];
}
return row;
} /// <summary>
/// 获得第一行第一个字段的值
/// </summary>
/// <param name="sql"></param>
/// <param name="sTable"></param>
/// <returns></returns>
public static string GetFirstFieldValue(string sql, string sTable)
{
string str = "";
DataSet set = ExecQuery(sql, sTable);
if (set.Tables[sTable].Rows.Count > 0)
{
DataRow row = set.Tables[sTable].Rows[0];
str = row[0].ToString();
}
return str;
} /// <summary>
/// 释放连接资源
/// </summary>
public static void Dispose()
{
if (null != connection)
{
if (connection.State != ConnectionState.Closed)
{
connection.Close();
}
connection.Dispose();
connection = null;
}
} #endregion #endregion }
}

C#:数据库操作(待补充)的更多相关文章

  1. 如何在高并发环境下设计出无锁的数据库操作(Java版本)

    一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...

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

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

  3. MySQL 系列(二) 你不知道的数据库操作

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...

  4. ABP创建数据库操作步骤

    1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...

  5. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. django数据库操作和中间件

    数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...

  7. [Android Pro] 完美Android Cursor使用例子(Android数据库操作)

    reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...

  8. phpcms v9 中的数据库操作函数

    1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='')   返回 ...

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

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

  10. python之数据库操作

    数据库操作 Python 操作 Mysql 模块的安装 1 2 3 4 5 linux:     yum install MySQL-python   window:     http://files ...

随机推荐

  1. CentOS 6.9/7通过yum安装指定版本的PostgreSQL扩展PostGIS

    一.安装PostGIS扩展插件(24_10) // 安装EPEL源 # rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-rele ...

  2. mysql表前缀

    之前一直没明白,mysql有些规范里面,建议建表的时候添加前缀,它的意义究竟是为何.直到最近,我想学习一下Swift的网络请求,于是打算在新浪云新建个项目却发现新浪云免费用户最多只能建立5个项目.于是 ...

  3. Swift使用NSKeyedArchiver进行数据持久化保存的经验

    iOS提供了几种数据持久化保存的方法,有NSKeyedArchiver,Property List,NSUserDefaults和CoreData.我学习下来,觉得保存应用内的诸如列表,记录这些东西, ...

  4. How to implement *All-Digital* analog-to-digital converters in FPGAs and ASICs

    When we engineers look at the complexity of system design these days, we are challenged with crammin ...

  5. WM-G-MR-09模块

    WM-G-MR-09模块,该模块同时支持SDIO与SPI 模式 USI(环隆电气)WM-G-MR-09,该WiFi芯片支持802.11b/g无线网络模式,芯片体积8.2×8.4×1.35(mm),采用 ...

  6. Ubuntu中升极下载4.2内核

    http://tech.hexun.com/2015-09-11/179027013.html 从这段话中所表达出的意思可以了解,Linux Kernel 4.3版本已经开始进行,Linus Torv ...

  7. matlab 人面检测

    Create a detector object. faceDetector = vision.CascadeObjectDetector;Read input image. I = imread(' ...

  8. HDU1230 火星A+B

    火星A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. 进程控制块(PCB)结构

    一.进程控制块(PCB)结构 进程控制块(PCB)是系统为了管理进程设置的一个专门的数据结构.系统用它来记录进程的外部特征,描述进程的运动变化过程.同时,系统可以利用PCB来控制和管理进程,所以说,P ...

  10. FrameWork数据权限浅析4之基于多维度配置表实现行级数据安全

    日子过得好苦逼,我过的很好,只是缺少¥.时间在变,而问题始终未变,你解不解决它都在那里一动不动.不知不觉已经发现手机的中央,电脑的右下角已经出现了201411的字样,突然从桌子上爬起来,差点忘记了自己 ...