有空再写Oracle、IBM的吧。其实除了连接字符串格式,也只是换换数据库接口名。

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;namespace IDataBase
{public class SQLServer{/// <summary>/// 数据库连接字符串/// </summary>public string ConnectionString{get;set;}/// <summary>/// 上一次数据库异常/// </summary>public string sqlException{get;set;}SqlConnection sqlConn;SqlCommand sqlCmd;SqlDataReader reader;DataSet ds;SqlCommandBuilder cmdBuilder;SqlDataAdapter adapter;/// <summary>/// 创建一个SQL数据库实例,在设置ConnectionString属性之前无法连接到数据库/// </summary>public SQLServer(){}/// <summary>/// 用给定数据库连接字符串创建SQL数据库实例/// </summary>/// <param name="connectionString"></param>public SQLServer(string connectionString){ConnectionString = connectionString;sqlConn = new SqlConnection(ConnectionString);}/// <summary>/// 用SQL server身份验证方式创建SQL数据库实例,若不使用SQLserver2000应在server后加访问端口“,2317”或“\SQLExpress”/// </summary>/// <param name="AttachDBFilename"></param>/// <param name="server"></param>/// <param name="DataBase"></param>/// <param name="uid"></param>/// <param name="pwd"></param>public SQLServer(string server ,string DataBase, string uid, string pwd, string AttachDBFilename = null){SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();if (AttachDBFilename != null){builder.AttachDBFilename = AttachDBFilename;}builder.DataSource = server;builder.InitialCatalog = DataBase;builder.UserID = uid;builder.Password = pwd;ConnectionString = builder.ConnectionString;sqlConn = new SqlConnection(ConnectionString);}/// <summary>/// 用SQL server身份验证方式连接默认数据库创建SQL数据库实例,若不使用SQLserver2000应在server后加访问端口“,2317”或“\SQLExpress”/// </summary>/// <param name="AttachDBFilename"></param>/// <param name="server"></param>/// <param name="uid"></param>/// <param name="pwd"></param>public SQLServer(string server, string uid, string pwd, string AttachDBFilename){SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();builder.AttachDBFilename = AttachDBFilename;builder.DataSource = server;builder.UserInstance = true;builder.UserID = uid;builder.Password = pwd;ConnectionString = builder.ConnectionString;sqlConn = new SqlConnection(ConnectionString);}/// <summary>/// 用windows身份验证方式创建SQL数据库实例,若不使用SQLserver2000应在server后加访问端口“,2317”或“\SQLExpress”/// </summary>/// <param name="server"></param>/// <param name="DataBase"></param>/// <param name="AttachDBFilename"></param>public SQLServer(string server, string DataBase ,string AttachDBFilename = null){SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();if( AttachDBFilename != null ){builder.AttachDBFilename = AttachDBFilename;}builder.DataSource = server;builder.InitialCatalog = DataBase;builder.IntegratedSecurity = true;ConnectionString = builder.ConnectionString;sqlConn = new SqlConnection(ConnectionString);}/// <summary>/// 用windows身份验证方式连接默认数据库创建SQL数据库实例,若不使用SQLserver2000应在server后加访问端口“,2317”或“\SQLExpress”/// </summary>/// <param name="server"></param>/// <param name="AttachDBFilename"></param>public SQLServer(string server, string AttachDBFilename){SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();builder.AttachDBFilename = AttachDBFilename;builder.DataSource = server;builder.UserInstance = true;builder.IntegratedSecurity = true;ConnectionString = builder.ConnectionString;sqlConn = new SqlConnection(ConnectionString);}/// <summary>/// 使用SQL连接字符串编辑器完成连接字符串的微调,并用创建的连接字符串创建数据库实例/// </summary>/// <param name="sqlConnStrBuilder"></param>public SQLServer(SqlConnectionStringBuilder sqlConnStrBuilder){ConnectionString = sqlConnStrBuilder.ConnectionString;sqlConn = new SqlConnection(ConnectionString);}/// <summary>/// 打开SQL数据库连接/// </summary>/// <returns></returns>private bool openConnection(){try{sqlConn.Open();return true;}catch (Exception e){sqlException = e.ToString();return false;}}/// <summary>/// 关闭SQL数据库连接/// </summary>private void closeConnection(){sqlConn.Close();}/// <summary>/// 执行SQL命令/// </summary>/// <param name="cmd"></param>private bool excuteCmd(){try{openConnection();sqlCmd.ExecuteNonQuery();closeConnection();return true;}catch (Exception e){sqlException = e.ToString();closeConnection();return false;}}/// <summary>/// 执行sql语句,成功返回true,失败返回false/// </summary>/// <param name="cmd"></param>/// <returns></returns>public bool runSqlCmd(string cmd,sqlConn){sqlCmd = new SqlCommand(cmd);return excuteCmd();}/// <summary>/// 由用户自行生成一条sql命令并执行/// </summary>/// <param name="cmd"></param>/// <returns></returns>public bool runSqlCmd(SqlCommand cmd){sqlCmd = cmd;return excuteCmd();}/// <summary>/// 按sql查询语句获得目标数据表的数据,返回DataTable。/// </summary>/// <param name="sqlQuery"></param>/// <returns></returns>public DataTable getDataTableBySQL(string sqlQuery){ds = new DataSet();adapter = new SqlDataAdapter(sqlQuery, sqlConn);cmdBuilder = new SqlCommandBuilder(adapter);openConnection();adapter.Fill(ds);closeConnection();return ds.Tables[0];}/// <summary>/// 获得目标数据表的数据,返回DataTable。/// </summary>/// <param name="tableName"></param>/// <returns></returns>public DataTable getDataTableByName(string tableName){ds = new DataSet();adapter = new SqlDataAdapter("select * from "+tableName,sqlConn);cmdBuilder = new SqlCommandBuilder(adapter);openConnection();adapter.Fill(ds,tableName);closeConnection();return ds.Tables[tableName];}/// <summary>/// 将数据库中指定的一或多个数据表填入DataSet并返回。/// </summary>/// <param name="sqlQuery"></param>/// <returns></returns>public DataSet getDataSet(string[] tableNameArray){ds = new DataSet();openConnection();foreach (string i in tableNameArray){adapter = new SqlDataAdapter("select * from "+i, sqlConn);cmdBuilder = new SqlCommandBuilder(adapter);adapter.Fill(ds,i);}closeConnection();return ds;}/// <summary>/// 执行带1个参数的sql插入语句。sql语句中的参数名,与对应parameterName的值都请用“@para”的格式。成功返回true,失败返回false。/// </summary>/// <param name="sql"></param>/// <param name="parameterName"></param>/// <param name="dbType"></param>/// <param name="value"></param>/// <returns></returns>public bool insert(string sql, string parameterName, SqlDbType dbType , int size, object value){try{openConnection();sqlCmd = new SqlCommand();sqlCmd.Parameters.Add(parameterName, dbType, size);sqlCmd.Parameters[parameterName].Value = value;sqlCmd.ExecuteNonQuery();closeConnection();return true;}catch (Exception e){sqlException = e.ToString();closeConnection();return false;}}/// <summary>/// 生成一个指定数据表的空数据列/// </summary>/// <param name="tableName"></param>/// <returns></returns>public DataRow creatDataRow(string tableName){ds = new DataSet();adapter = new SqlDataAdapter("select * from "+tableName, sqlConn);cmdBuilder = new SqlCommandBuilder(adapter);openConnection();adapter.Fill(ds, tableName);closeConnection();return ds.Tables[tableName].NewRow();}/// <summary>/// 向指定数据表插入数据列,空数据列可以用当前类的creatDataRow方法获得。成功返回true,失败返回false。/// </summary>/// <param name="tableName"></param>/// <param name="row"></param>/// <returns></returns>public bool insert(string tableName, DataRow row){try{ds = new DataSet();adapter = new SqlDataAdapter("select * from "+tableName, sqlConn);cmdBuilder = new SqlCommandBuilder(adapter);openConnection();adapter.Fill(ds, tableName);ds.Tables[tableName].Rows.Add(row.ItemArray);adapter.Update(ds, tableName);closeConnection();return true;}catch (Exception e){sqlException = e.ToString();closeConnection();return false;}}/// <summary>/// 执行带1个参数的sql更新语句。sql语句中的参数名,与对应parameterName的值都请用“@para”的格式。成功返回true,失败或没找到指定行返回false。/// </summary>/// <param name="sql"></param>/// <param name="parameterName"></param>/// <param name="dbType"></param>/// <param name="size"></param>/// <param name="value"></param>/// <returns></returns>public bool update(string sql, string parameterName, SqlDbType dbType, int size, object value){try{openConnection();sqlCmd = new SqlCommand();sqlCmd.Parameters.Add(parameterName, dbType, size);sqlCmd.Parameters[parameterName].Value = value;if (sqlCmd.ExecuteNonQuery() == 0){closeConnection();return false;}closeConnection();return true;}catch (Exception e){sqlException = e.ToString();closeConnection();return false;}}/// <summary>/// 用当前类的getDataSet方法获取指定数据表,修改后用本方法批量地更新指定数据表。成功返回true,失败返回false。/// </summary>/// <param name="tableName"></param>/// <param name="dataSet"></param>/// <returns></returns>public bool update(string tableName, DataSet dataSet){try{adapter = new SqlDataAdapter("select * from "+tableName, sqlConn);cmdBuilder = new SqlCommandBuilder(adapter);openConnection();adapter.Update(dataSet);closeConnection();return true;}catch (Exception e){sqlException = e.ToString();closeConnection();return false;}}/// <summary>/// 返回指定数据表的指定列中是否存在指定值/// </summary>/// <param name="tableName"></param>/// <param name="columnName"></param>/// <param name="value"></param>/// <returns></returns>public bool existInTable(string tableName, string columnName, string value){sqlCmd = new SqlCommand("select * from "+tableName+" where "+columnName+"='"+value+"'",sqlConn);openConnection();reader = sqlCmd.ExecuteReader(CommandBehavior.SingleResult);bool exist = reader.HasRows;reader.Close();closeConnection();return exist;}/// <summary>/// 返回指定数据表的指定列中有多少个指定值/// </summary>/// <param name="tableName"></param>/// <param name="columnName"></param>/// <param name="value"></param>/// <returns></returns>public int countInTable(string tableName, string columnName, string value){sqlCmd = new SqlCommand("select count(*) from " + tableName + " where " + columnName + "='" + value + "'", sqlConn);openConnection();int count = (int)sqlCmd.ExecuteScalar();closeConnection();return count;}/// <summary>/// DataReader使用完毕必须用当前类的close方法将DataReader关闭,并关闭数据库连接/// </summary>/// <param name="sql"></param>/// <returns></returns>public SqlDataReader select(string sql){sqlCmd = new SqlCommand(sql, sqlConn);openConnection();reader = sqlCmd.ExecuteReader();return reader;}/// <summary>/// 如果本类提供的DataReader未关闭,将其关闭,同时关闭未关闭的数据库连接/// </summary>public void close(){if (!reader.IsClosed){reader.Close();}sqlConn.Close();}}public class Access{/// <summary>/// 数据库连接字符串/// </summary>public string ConnectionString{get;set;}/// <summary>/// 上一次数据库异常/// </summary>public string oleException{get;set;}OleDbConnection conn;OleDbCommand cmd;OleDbDataReader reader;DataSet ds;OleDbCommandBuilder cmdBuilder;OleDbDataAdapter adapter;/// <summary>/// 创建一个OleDb数据库实例,在设置ConnectionString属性之前无法连接到数据库/// </summary>public Access(){ }/// <summary>/// 用给定数据库连接字符串创建OleDb数据库实例/// </summary>/// <param name="connectionString"></param>public Access(string connectionString){ConnectionString = connectionString;conn = new OleDbConnection(ConnectionString);}/// <summary>/// 用数据源提供程序和数据库文件名进行简易连接,数据库文件在项目默认数据库路径下/// </summary>/// <param name="provider"></param>/// <param name="dataBase"></param>public Access(string provider, string dataBaseName){OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder();builder.Provider = provider;builder.DataSource = "|DataDirectory|"+dataBaseName;ConnectionString = builder.ConnectionString;conn = new OleDbConnection(ConnectionString);}/// <summary>/// 使用OleDb连接字符串编辑器完成连接字符串的微调,并用创建的连接字符串创建数据库实例/// </summary>/// <param name="sqlConnStrBuilder"></param>public Access(OleDbConnectionStringBuilder oleConnStrBuilder){ConnectionString = oleConnStrBuilder.ConnectionString;conn = new OleDbConnection(ConnectionString);}/// <summary>/// 打开OleDb数据库连接/// </summary>/// <returns></returns>private bool openConnection(){try{conn.Open();return true;}catch (Exception e){oleException = e.ToString();return false;}}/// <summary>/// 关闭OleDb数据库连接/// </summary>private void closeConnection(){conn.Close();}/// <summary>/// 执行SQL命令/// </summary>/// <param name="cmd"></param>private bool excuteCmd(){try{openConnection();cmd.ExecuteNonQuery();closeConnection();return true;}catch (Exception e){oleException = e.ToString();closeConnection();return false;}}/// <summary>/// 执行sql语句,成功返回true,失败返回false/// </summary>/// <param name="cmd"></param>/// <returns></returns>public bool runSqlCmd(string _cmd){cmd = new OleDbCommand(_cmd,conn);return excuteCmd();}/// <summary>/// 由用户自行生成一条sql命令并执行/// </summary>/// <param name="cmd"></param>/// <returns></returns>public bool runSqlCmd(OleDbCommand _cmd){cmd = _cmd;return excuteCmd();}/// <summary>/// 按sql查询语句获得目标数据表的数据,返回DataTable。/// </summary>/// <param name="sqlQuery"></param>/// <returns></returns>public DataTable getDataTableBySQL(string sqlQuery){ds = new DataSet();adapter = new OleDbDataAdapter(sqlQuery, conn);cmdBuilder = new OleDbCommandBuilder(adapter);openConnection();adapter.Fill(ds);closeConnection();return ds.Tables[0];}/// <summary>/// 获得目标数据表的数据,返回DataTable。/// </summary>/// <param name="tableName"></param>/// <returns></returns>public DataTable getDataTableByName(string tableName){ds = new DataSet();adapter = new OleDbDataAdapter("select * from " + tableName, conn);cmdBuilder = new OleDbCommandBuilder(adapter);openConnection();adapter.Fill(ds, tableName);closeConnection();return ds.Tables[tableName];}/// <summary>/// 将数据库中指定的一或多个数据表填入DataSet并返回。/// </summary>/// <param name="sqlQuery"></param>/// <returns></returns>public DataSet getDataSet(string[] tableNameArray){ds = new DataSet();openConnection();foreach (string i in tableNameArray){adapter = new OleDbDataAdapter("select * from " + i, conn);cmdBuilder = new OleDbCommandBuilder(adapter);adapter.Fill(ds, i);}closeConnection();return ds;}/// <summary>/// 执行带1个参数的sql插入语句。sql语句中的参数名,与对应parameterName的值都请用“@para”的格式。成功返回true,失败返回false。/// </summary>/// <param name="sql"></param>/// <param name="parameterName"></param>/// <param name="dbType"></param>/// <param name="value"></param>/// <returns></returns>public bool insert(string sql, string parameterName, OleDbType dbType, int size, object value){try{openConnection();cmd = new OleDbCommand();cmd.Parameters.Add(parameterName, dbType, size);cmd.Parameters[parameterName].Value = value;cmd.ExecuteNonQuery();closeConnection();return true;}catch (Exception e){oleException = e.ToString();closeConnection();return false;}}/// <summary>/// 生成一个指定数据表的空数据列/// </summary>/// <param name="tableName"></param>/// <returns></returns>public DataRow creatDataRow(string tableName){ds = new DataSet();adapter = new OleDbDataAdapter("select * from " + tableName, conn);cmdBuilder = new OleDbCommandBuilder(adapter);openConnection();adapter.Fill(ds, tableName);closeConnection();return ds.Tables[tableName].NewRow();}/// <summary>/// 向指定数据表插入数据列,空数据列可以用当前类的creatDataRow方法获得。成功返回true,失败返回false。/// </summary>/// <param name="tableName"></param>/// <param name="row"></param>/// <returns></returns>public bool insert(string tableName, DataRow row){try{ds = new DataSet();adapter = new OleDbDataAdapter("select * from " + tableName, conn);cmdBuilder = new OleDbCommandBuilder(adapter);openConnection();adapter.Fill(ds, tableName);ds.Tables[tableName].Rows.Add(row.ItemArray);adapter.Update(ds, tableName);closeConnection();return true;}catch (Exception e){oleException = e.ToString();closeConnection();return false;}}/// <summary>/// 执行带1个参数的sql更新语句。sql语句中的参数名,与对应parameterName的值都请用“@para”的格式。成功返回true,失败或没找到指定行返回false。/// </summary>/// <param name="sql"></param>/// <param name="parameterName"></param>/// <param name="dbType"></param>/// <param name="size"></param>/// <param name="value"></param>/// <returns></returns>public bool update(string sql, string parameterName, OleDbType dbType, int size, object value){try{openConnection();cmd = new OleDbCommand();cmd.Parameters.Add(parameterName, dbType, size);cmd.Parameters[parameterName].Value = value;if (cmd.ExecuteNonQuery() == 0){closeConnection();return false;}closeConnection();return true;}catch (Exception e){oleException = e.ToString();closeConnection();return false;}}/// <summary>/// 用当前类的getDataSet方法获取指定数据表,修改后用本方法批量地更新指定数据表。成功返回true,失败返回false。/// </summary>/// <param name="tableName"></param>/// <param name="dataSet"></param>/// <returns></returns>public bool update(string tableName, DataSet dataSet){try{adapter = new OleDbDataAdapter("select * from " + tableName, conn);cmdBuilder = new OleDbCommandBuilder(adapter);openConnection();adapter.Update(dataSet);closeConnection();return true;}catch (Exception e){oleException = e.ToString();closeConnection();return false;}}/// <summary>/// 返回指定数据表的指定列中是否存在指定值/// </summary>/// <param name="tableName"></param>/// <param name="columnName"></param>/// <param name="value"></param>/// <returns></returns>public bool existInTable(string tableName, string columnName, string value){cmd = new OleDbCommand("select * from " + tableName + " where " + columnName + "='" + value + "'", conn);openConnection();reader = cmd.ExecuteReader(CommandBehavior.SingleResult);bool exist = reader.HasRows;reader.Close();closeConnection();return exist;}/// <summary>/// 返回指定数据表的指定列中有多少个指定值/// </summary>/// <param name="tableName"></param>/// <param name="columnName"></param>/// <param name="value"></param>/// <returns></returns>public int countInTable(string tableName, string columnName, string value){cmd = new OleDbCommand("select count(*) from " + tableName + " where " + columnName + "='" + value + "'", conn);openConnection();int count = (int)cmd.ExecuteScalar();closeConnection();return count;}/// <summary>/// DataReader使用完毕必须用当前类的close方法将DataReader关闭,并关闭数据库连接/// </summary>/// <param name="sql"></param>/// <returns></returns>public OleDbDataReader select(string sql){cmd = new OleDbCommand(sql, conn);openConnection();reader = cmd.ExecuteReader();return reader;}/// <summary>/// 如果本类提供的DataReader未关闭,将其关闭,同时关闭未关闭的数据库连接/// </summary>public void close(){if (!reader.IsClosed){reader.Close();}conn.Close();}}
}

C#语言 SqlClient接口SQL Sever数据库类+OleDb接口Access数据库类相关推荐

  1. VB.NET 使用 OleDb 操作 Access 数据库(来自 MSDN)

    VB.NET 使用 OleDb 操作 Access 数据库 这里采用 OleDb 方式对 Access 数据库进行访问,主要内容都来自 MSDN 帮助文档.建议新手注意 MSDN 的用途.下面的代码只 ...

  2. oleDB 更新 access 数据库

    这两天为用 oleDB 更新 access 数据库搞得晕头转向,用 OleDbCommandBuilder 生成的 insert 语句运行时老报错.今天终于找到解决办法,见: http://www.d ...

  3. 易语言外部数据库MySQL支持库Access数据库Sqlite数据应用

    语言虽然有自己的数据库, 但易数据库只是以简单的.类似表格的形式组织数据信息,是一个小型数据库管理系统.有时编程中必须使用其它数据库.易语言支持以ODBC方式和ADO方式操作外部数据库. 一.ODBC ...

  4. asp.net中ADO.NET连接SQL数据库代码和连接Access数据库代码

    连接SQL数据库方法: 一.建立连接          1.(使用System.Data.SqlClient) <1>  string strcon;         //声明连接字串   ...

  5. access 数据库 mysql数据库_如何将Access数据库移植到MySQL数据库

    序论 很多MySQL用户都有过将Access移植到MySQL的计划,不过这个移植过程性能和实践的相关描述资料很少.本文将为大家总结将Access应用程序成功移植到MySQL的要点和注意事项. 由于Ac ...

  6. access可以连接mysql数据库吗_JDBC连接Access数据库的几种方式介绍

    接下来总结一下常用的几种连接方式. 例如有如下的Access数据库student,表basic,以及6条记录,现在通过几种方式在Jsp中将他们的数据显示出来.如图所示: 对于几种连接Access数据库 ...

  7. access数据库导入oracle数据库,将excel表格导入access数据库再导入oracle数据库方法-如何将ACCESS数据库的文件导入到ORACLE中?...

    怎样将excel中的数据导入到oracle数据库中 敢问楼主,表A存在几列,表B存在几列,表C存在几列 常规方法(表中列和excel中列一致) PLSQL 中 : select * from A up ...

  8. access数据库文件导入mysql数据库文件怎么打开,Access数据库从外部数据导入文本文件和VF数据库-dbf文件怎么打开...

    亲爱的小伙伴们,我们又见面了! 上一期我们学习了Access数据库从外部数据导入Excel文件,下图学生成绩表2就是我们新导入的数据: 导入Excel文件 今天我们来学习如何从外部数据导入文本文件和V ...

  9. 高中会考access数据库_高中信息技术ACCESS数据库上机操作复习课教案

    上机操作复习课 [教学目标] 1 .巩固掌握创建数据库.数据表的方法,及建立表间联系的方法. 2 .让学生通过创建和运行查询,对数据进行查找.筛选和排序,体验数据检查的基本过程, 加深对数据查询原理的 ...

最新文章

  1. python基础教程微信_用Python实现让微信地球转起来附代码!
  2. UA MATH566 统计理论7: Multiple Test
  3. 阿里云EDAS 3.0重磅发布,无侵入构建云原生应用
  4. Google的电话面试
  5. devops 文化_需要建立DevOps文化
  6. 装个discuz论坛
  7. 解决matplotlib中文显示问题
  8. Linux 进程内存掉电保存,Shell脚本可在Linux断电时停止应用程序
  9. HDFS教程(02)- HDFS命令汇总
  10. LCD12864新手入门
  11. Web应用程序的开发方法
  12. CAD中 OLE不能旋转_AutoCAD中光栅图像和OLE图像,究竟如何选择
  13. 我在飞机上,飞机在哪里?浅谈飞行模式与GPS定位
  14. 红宝书考研单词(四级到考研和六级的过渡词汇)
  15. 次世代建模,3D建模高低模的搭配方式你知道吗?
  16. oracle写一本日历
  17. SAP中汇率固定配置和应用分析测试
  18. 对bam文件作基础统计
  19. 警惕邮件中的发票链接
  20. 同一设备安装不同版本的Vue脚手架

热门文章

  1. web网站开发,web开发平台
  2. 差模干扰产生原因和差模电感电容工作原理
  3. Java生成微信分享海报小工具EasyPoster
  4. PPT基础(四十一)设置默认字体和形状
  5. 软考证书有效期多久?
  6. 手机端问题IOS及解决办法
  7. OpenCasCade数学库 - 包围盒(Bnd_Box)的变换(Transformed)
  8. SAP 提供的应收应付账款分析报表
  9. 【PCIe 5.0 - 100】SR-IOV【1】
  10. Linux - uptime命令平均负载详解