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. java计算代码执行时间

    有时候为了排查性能问题,需要记录完成某个操作需要的时间,我们可以使用System类的currentTimeMillis()方法来返回当前的毫秒数,并保存到一个变量中,在方法执行完毕后再次调用 Syst ...

  2. Spring MVC @ModelAttribute 详解

    1.@ModelAttribute注释void返回值的方法 @Controller public class HelloModelController { @ModelAttribute public ...

  3. Linux系统中/dev/mtd与/dev/mtdblock的区别,即MTD字符设备和块设备的区别

    转:http://www.crifan.com/linux_system_in__dev__mtd_and__dev__mtdblock_distinction_character_devices_a ...

  4. FastStone Capture 8.4 注册码

    原文:https://blog.csdn.net/mlin_123/article/details/51557079 name:bluman serial/序列号/注册码:VPISCJULXUFGDD ...

  5. centos7 yum安装配置redis 并设置密码

    原文:https://www.cnblogs.com/fanlinglong/p/6635828.html centos7 yum安装配置redis 并设置密码 1.设置Redis的仓库地址 yum ...

  6. ClientDataSet的版本兼容性

    ClientDataSet的版本兼容性 在Delphi的早期版本中,Data这个Variant类型的值内部使用的是AnsiString来存贮的字节流,但我并不确定Delphi从什么时候开始,将其改为了 ...

  7. 2017年USNews美国大学研究生专业排名

    2017年USNEWS美国大学研究生专业排名最佳商学院排名 排名 学校 费用 注册人数 #1 Harvard University Boston, MA $61,225 per year (full- ...

  8. python的with和__enter__ 、 __exit__

    __enter__(): 在使用with语句时调用,会话管理器在代码块开始前调用,返回值与as后的参数绑定 __exit__():   会话管理器在代码块执行完成好后调用,在with语句完成时,对象销 ...

  9. C#-MessageBox全部函数重载形式及举例

    Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.D ...

  10. hadoop源代码组织结构与阅读技巧

    本文将介绍在 Eclipse 下阅读 Hadoop 源代码的一些技巧, 比如如何查看一个基类有哪些派生类. 一个方法被其他哪些方法调用等. 本文地址:http://www.cnblogs.com/ar ...