c#对(oracle\sqlce\sqlite)简单操作

1:连接oracle

A:安装oracle服务端(11G/10G)

B:添加引用:

C:引入命名空间:using System.Data.OracleClient;

D:连接字符:

		/// <summary>
		/// 	获取连接对象
		/// </summary>
		/// <param name="user">用户名</param>
		/// <param name="password">密码</param>
		/// <param name="url">连接url,如(localhost:1521/orcl)</param>
		/// <returns>OracleConnection</returns>
		public OracleConnection getOracleConnection(String user,String password,String url)
		{
			String source = "Data source="+url+";Integrated Security=no;User ID="+user+";Password="+password;
			OracleConnection oraConn = new OracleConnection(source);
			oraConn.Open();
			return oraConn;
		}

2:连接sqlCE

A:安装SQLCE

B:添加引用:

C:引入命名空间:using System.Data.SQLite;

D:测试连接

		/// <summary>
		/// 	获取连接对象
		/// </summary>
		/// <param name="source">数据源(数据库存放路径),如:E:\dataSource\PostingSys.sdf</param>
		/// <param name="password">密码</param>
		/// <returns>SqlCeConnection</returns>
		public SqlCeConnection getSqlceConnection(String source,String password)
		{
			source = @"Data Source="+source+";Password="+password;
			SqlCeConnection sqlce = new SqlCeConnection(source);
			sqlce.Open();
			return sqlce;
		}

3:连接SQLite

A:安装SQLite

B:添加引用:

C:命名空间:using System.Data.SQLite;

D:测试连接:

		/// <summary>
		/// 	获取连接对象
		/// </summary>
		/// <param name="source">数据源(数据库存放路径),如E:\dataSource\openises.db</param>
		/// <returns>SQLiteConnection连接对象</returns>
		public SQLiteConnection getSQLiteConnection(String db)
		{
			SQLiteConnection slc = new SQLiteConnection("DateTimeKind = Utc;Data Source = " + db);
			slc.Open();
			return slc;
		}

4:由于本人发现c#对数据库的操作重复性很高,下面只贴出对oracle封装操作。因为其他两个思想也基本一致,只是对象及方法不同。下载

  • Oracle

更新

		/// <summary>
		/// 	操作:update\add\delete
		/// 如果是采用更新的话,则需注意以下
		/// 1:更新指定其字段,保存占位符的参数不能为null
		/// </summary>
		/// <param name="oc">连接对象</param>
		/// <param name="sqlText">执行的sql语句</param>
		/// <param name="arrayPara">占位符参数</param>
		/// <returns>int 返回操作后改变的行数</returns>
		public int ExecuteUpdate(OracleConnection oc,String sqlText,List<OracleParameter> arrayPara) {

			OracleCommand oraCom = null;
			int edit = 0;
			try{

				oraCom = new OracleCommand();
				oraCom.Connection = oc;
				oraCom.CommandText = sqlText;

				foreach(OracleParameter op in arrayPara){
					oraCom.Parameters.Add(op);
				}

				oraCom.Transaction = oc.BeginTransaction();//开启事务
				edit = oraCom.ExecuteNonQuery();
				oraCom.Transaction.Commit();//事务提交后,就把事务对象为null,但会话没有结束!

			}catch(Exception ex){
				if(oraCom!=null){
					oraCom.Transaction.Rollback();//回滚
				}
				Console.WriteLine("\n操作失败,异常:{0}",ex.Message);
				throw;
			}

			return edit;
		}

查询

		/// <summary>
		/// 	操作:查询
		/// 默认是查询所有。sqlText为条件后语句
		/// </summary>
		/// <param name="oc">Oracle连接对象</param>
		/// <param name="sqlText">条件语句(and xx=:xx)</param>
		/// <param name="arrayPara">占位符参数(如:id_x,:name_x)</param>
		/// <param name="clazz">查询表对应的实体类</param>
		/// <returns>list符合条件数据</returns>
		public List<Object> ExecuteSelect(OracleConnection oc,String sqlText,List<OracleParameter> arrayPara,Type clazz)
		{
			List<Object> clazzArray = new List<Object>();

			//执行对象
			OracleCommand comm = new OracleCommand();
			comm.CommandText = "select * from " + clazz.Name + " where 1=1 " +sqlText;
			comm.Connection = oc;
			//参数
			foreach(OracleParameter op in arrayPara){
				comm.Parameters.Add(op);
			}
			//执行sql
			OracleDataReader dataReader = comm.ExecuteReader();

			int fieLen = dataReader.FieldCount;
			while(dataReader.Read())
			{
				Object objTemp = Activator.CreateInstance(clazz);

				//获取每一行的每一个列。
				for(int x = 0; x < fieLen;x++)
				{
					String fieName = dataReader.GetName(x);
					Object fieValue= dataReader.GetValue(x);

					FieldInfo fieInfo = clazz.GetField(fieName,BindingFlags.IgnoreCase|BindingFlags.NonPublic|BindingFlags.Instance);

					/*类型转换:*/
					String typeName = fieInfo.FieldType.Name;

					if(fieValue.ToString()==String.Empty || fieValue.ToString().Length < 1)
						continue;

					fieValue = TransformationUtils.typeTransform(typeName,fieValue);
					fieInfo.SetValue(objTemp,fieValue);
				}
				clazzArray.Add(objTemp);
			}
			return clazzArray;
		}	

工具类下载

c#对(oracle\sqlce\sqlite)简单操作

时间: 2024-10-05 20:07:26

c#对(oracle\sqlce\sqlite)简单操作的相关文章

SQLite简单操作

2016-11-05 数据库简介 数据库的作用 用来做离线数据缓存 数据缓存策略 plist , 归档 , 偏好设置 , 沙盒文件 , SQLite数据库 系统提供的数据存储方式的弊端 不方便操作大量的数据 如果要添加新的数据,必须先把旧数据全部加载到内存中. 系统提供的数据存储方式都是覆盖存储的,新的数据会覆盖旧的数据. 不方便查找大量的数据 当数据量非常庞大时,要查询其中某些数据,就非常困难. 比如把数组数据存储到plist文件中,当数据量比较大时,无论存储还是查找数据都相当不方便. 当pl

oracle之sql简单操作

基于上篇文章的环境下进行操作http://huangsir007.blog.51cto.com/6159353/1854392 oracle用户sys.system区别: sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限 system用户是管理操作员,权限也很大,具有sysoper角色,没有create database的权限 一般来说,对数据库维护,使用system用户登录就可以 sqlplus: Usage 2: sqlplus [ [<opt

Oracle RAC的简单操作

1.查看OCR位置用户指定的位置会被放置在 /etc/oracle/ocr.loc(Liunx系统) 或 /var/opt/oracle/ocr.loc [[email protected] opt]$ cat /etc/oracle/ocr.loc ocrconfig_loc=/dev/raw/raw1 local_only=FALSE

ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作

1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其自带的卸载工具进行卸载[universal installer],然后删除注册表项,删除环境变量,删除目录并且重新启动计算机. 2.在网页版进行创建表空间: 进入网页版: 在电脑的服务中我们可以看到一共有7个oracle的服务项目,其中只有三个是正在启动中.这三项中,只有当OracleDBConso

oracle创建用户ORA-01045:user lacks CREATE SESSION privilege 及一些简单操作(one lesson)

scott用户成功连接数据库的具体方法: 1.grant connect, resource to scott;2.grant create session to scott; 3.cmd4.sqlplus scott/tiger Oracle的安全 1.用户管理 用户至少需要会话的权利,否则连接也不成功: 用户在会话的权利上,应该有其他操作的权利: Oracle的用户和口令不区分大小写,真是让人大跌眼镜: Oralce中,所有用户必须明确被授权,才可以操作: SQL Server中,创建的用户

SQLite简单介绍

一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1)归档:NSCodeing.NSKeyedArchiver (2)偏好设置:NSUserDefaults (3)Plist存储:writeToFile 提示:上述三种方法都有一个致命的缺点,那就是都无法存储大批量的数据,有性能的问题. 举例:使用归档 两个问题: (1)数据的存取都必须是完整的,要求写入的时候要一次性写入,读取的时候要一次性

iOS开发数据库篇—SQLite简单介绍

转自:http://www.cnblogs.com/wendingding/p/3868893.html 一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1)归档:NSCodeing.NSKeyedArchiver (2)偏好设置:NSUserDefaults (3)Plist存储:writeToFile 提示:上述三种方法都有一个致命的缺点,那就是都无法存储大批量的数据,有性能的问题.

iOS 中SQLite数据库操作

在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 demo 具体过程: 1.创建名为 SQLite_Manage 的.h .m 文件,导入头文件 <sqlite3.h> 2.数据库在一个app中只有一个,使用单例模式:(代码如下) 1 + (SQLite_Manager *)sharedManager{ 2 static SQLite_Mana

进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢.所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量.所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来