当前位置: 首页 > news >正文

导航仪企业网站源码推推蛙品牌策划

导航仪企业网站源码,推推蛙品牌策划,网络推广视频,猪八戒网站开发合同最近做项目,要跟对方系统的库进行读写,结果发现对方采用的是oracle的us7ascii编码,我们系统默认采用的是ZHS16GBK,导致我们客户端读取和写入对方库的数据都是乱码,搜索网上,发现需要采用独立的oracle驱动去…

最近做项目,要跟对方系统的库进行读写,结果发现对方采用的是oracle的us7ascii编码,我们系统默认采用的是ZHS16GBK,导致我们客户端读取和写入对方库的数据都是乱码,搜索网上,发现需要采用独立的oracle驱动去处理,最后采用Devart驱动,可以指定字符集编码

添加引用2个DLL:

数据库操作代码如下:(查询)

using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml;using Devart.Data.Oracle;namespace WindowsOrcleDevart
{/// <summary>/// 使用OracleDevart驱动/// </summary>public class ProviderDevart{private OracleConnection dbConnection;private OracleTransaction dbTransaction;private string _strConn = "";private string path = AppDomain.CurrentDomain.BaseDirectory + "logs\\调用数据库";public string Err = "";public string StrConn { get => _strConn; set => _strConn = value; }public int BeginTransaction(){//this.Err = "";int result = -1;try{GetSingerConnection();this.dbTransaction = this.dbConnection.BeginTransaction();result = 1;}catch (Exception message){this.dbTransaction.Dispose();this.dbTransaction = null;Err = "开始事务异常," + message.Message;WriteLog(path, Err);}return result;}// 定义一个静态变量来保存类的实例private static ProviderDevart s_instance;/// <summary>/// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点/// </summary>/// <returns></returns>public static ProviderDevart Instance{ // 当第一个线程运行到这里时,此时会对locker对象 "加锁",// 当第二个线程运行该方法时,首先检测到locker对象为"加锁"状态,该线程就会挂起等待第一个线程解锁// lock语句运行完之后(即线程运行完之后)会对该对象"解锁"// 双重锁定只需要一句判断就可以了get{if (s_instance == null){lock (locker){if (s_instance == null){s_instance = new ProviderDevart();}}}return s_instance;}}#region 单例锁  定义一个标识确保线程同步private static readonly object locker = new object();#endregionprivate void GetSingerConnection(){if (this.dbConnection != null){if (dbConnection.State != ConnectionState.Open){dbConnection.Open();}}else{this.dbConnection = new OracleConnection(_strConn);this.dbConnection.Open();}}public int TransactionCommit(){//this.Err = "";int result = -1;try{GetSingerConnection();if (this.dbTransaction != null){this.dbTransaction.Commit();this.dbTransaction.Dispose();this.dbTransaction = null;}result = 1;}catch (Exception message){if (this.dbTransaction != null){this.dbTransaction.Dispose();this.dbTransaction = null;}Err = "提交事务异常," + message.Message;WriteLog(path, Err);}return result;}public int TransactionRollBack(){//this.Err = "";int result = -1;try{GetSingerConnection();if (this.dbTransaction != null){this.dbTransaction.Rollback();this.dbTransaction.Dispose();this.dbTransaction = null;}result = 1;}catch (Exception message){if (this.dbTransaction != null){this.dbTransaction.Dispose();this.dbTransaction = null;}Err = "回滚事务异常," + message.Message;WriteLog(path, Err);}return result;}/// <summary>/// 插入/更新/删除表数据/// </summary>/// <param name="strSql"></param>/// <returns>返回SQL执行的影响行数,返回-1表示出现了内部错误</returns>public int ExecuteNonQuery(string strSql){//this.Err = "";OracleGlobalization applicationInfo = OracleGlobalization.GetApplicationInfo();applicationInfo.ClientCharacterSet = "us7ascii";OracleGlobalization.SetApplicationInfo(applicationInfo);int result = -1;try{GetSingerConnection();WriteLog(path, " 开始");WriteLog(path, "strConn:" + _strConn);WriteLog(path, "strSql:" + strSql);if (_strConn == "" || strSql == ""){Err = "strConn 或 strSql 为空,无法执行!";}else{OracleCommand cmd = dbConnection.CreateCommand();if (this.dbTransaction != null){cmd.Transaction = this.dbTransaction;}cmd.CommandText = strSql;result = cmd.ExecuteNonQuery();}}catch (Exception ex){Err = "插入更新数据异常," + ex.Message;WriteLog(path, Err);}WriteLog(path, " 结束");return result;}/// <summary>/// 查询表数据/// </summary>/// <param name="strSql">SQL语句</param>/// <param name="data">返回数据为DataTable</param>/// <returns></returns>public int FillDataTable(string strSql, out DataTable data){//this.Err = "";data = new DataTable();OracleGlobalization applicationInfo = OracleGlobalization.GetApplicationInfo();applicationInfo.ClientCharacterSet = "us7ascii";OracleGlobalization.SetApplicationInfo(applicationInfo);int result = -1;OracleCommand oleDbCommand = null;try{GetSingerConnection();WriteLog(path, " 开始");WriteLog(path, "strConn:" + _strConn);WriteLog(path, "strSql:" + strSql);oleDbCommand = new OracleCommand(strSql, dbConnection);oleDbCommand.CommandType = CommandType.Text;using (OracleDataAdapter oleDbDataAdapter = new OracleDataAdapter(oleDbCommand)){DataSet ds = new DataSet();oleDbDataAdapter.Fill(ds, "ReturnTable");if (ds != null && ds.Tables.Count > 0){data = ds.Tables[0];}}result = 1;}catch (Exception ex){Err = "查询数据异常," + ex.Message;WriteLog(path, Err);}WriteLog(path, " 结束");return result;}private bool dbClose(OracleConnection conn, OracleCommand cmd, OracleTransaction tran){bool result;if (cmd != null){cmd.Dispose();GC.Collect();result = false;}else if (conn != null){if (conn.State == ConnectionState.Open){conn.Close();}conn.Dispose();GC.Collect();result = true;}else{GC.Collect();result = false;}return result;}public void WriteLog(string filePath, string message){try{if (!Directory.Exists(filePath)){Directory.CreateDirectory(filePath);}string fileName = filePath + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";string msg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:") + DateTime.Now.Millisecond + "  " + message;System.IO.StreamWriter sw = System.IO.File.AppendText(fileName);sw.WriteLine(msg);sw.Close();}catch{}}}
}

客户端访问示例:

private void button1_Click(object sender, EventArgs e)
{ProviderDevart providerDevart = ProviderDevart.Instance;providerDevart.StrConn = "data source=XXX.XX.8.X:1521/orcl;user id=#####;password=######;";providerDevart.FillDataTable("SELECT '测试数据' as T1 FROM DUAL  ",out DataTable dt);MessageBox.Show(dt.Rows[0]["T1"].ToString());
}

源码,压缩包见地址:

c#程序,oracle使用Devart驱动解决第第三方库是us7ascii,数据乱码的问题资源-CSDN文库

http://www.hkea.cn/news/34386/

相关文章:

  • 用其他商标在自己网站做宣传百度云网盘资源分享网站
  • 对商家而言网站建设的好处淘宝关键词查询工具哪个好
  • 做简单网站代码关键词推广价格
  • 做品牌折扣的网站百度推广的五大优势
  • 南宁比较有好的网站制作公司百度推广后台登录页面
  • 长沙企业网站排名优化windows优化大师和360哪个好
  • 珠海网站开发维护科技公司免费的网络推广渠道有哪些
  • wp建站系统微信营销管理软件
  • 本地打开WordPress慢百度seo优化分析
  • 适合友情链接的网站排名函数
  • 开发公司岗位设置广州seo招聘网
  • 国内web设计网站宣传推广
  • 深圳高端网站定制公司小时seo
  • wordpress主菜单下拉箭头怎么设置台州seo排名优化
  • 网站系统管理员模块关键词查找工具
  • 望江县建设局网站外贸seo推广招聘
  • 微信网站上传图片手机怎么制作网站
  • 简单做网站需要学什么搜索引擎有哪些网站
  • 网站备案信息加到哪里如何进行网站推广
  • 昭通网站制作aso优化技巧
  • 制作网站时怎样做滚动字幕新网站多久会被百度收录
  • 余姚物流做网站微信指数是搜索量吗
  • 怎样做网站轮播今日国内重大新闻事件
  • 想给大学做网站百度网盘搜索神器
  • jsp网站开发论文官方app下载安装
  • 关于机场建设的网站今日疫情最新情况
  • 网站域名注册服务商google浏览器官方
  • 通过网站开发工具怎么改自动跳网站百度指数有哪些功能
  • 可以发锚文本的网站百度搜索官方网站
  • 东莞网站建设企慕简述如何优化网站的方法