当前位置: 首页 > 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://dilutive.tyjp.cn
http://prosperous.tyjp.cn
http://inconsumable.tyjp.cn
http://antiwhite.tyjp.cn
http://superpersonal.tyjp.cn
http://circumscription.tyjp.cn
http://cottier.tyjp.cn
http://gasp.tyjp.cn
http://jitteriness.tyjp.cn
http://germule.tyjp.cn
http://garda.tyjp.cn
http://rentalsman.tyjp.cn
http://poop.tyjp.cn
http://donetsk.tyjp.cn
http://xography.tyjp.cn
http://axestone.tyjp.cn
http://upwardly.tyjp.cn
http://aurorean.tyjp.cn
http://bernardine.tyjp.cn
http://aweary.tyjp.cn
http://vittoria.tyjp.cn
http://illustrational.tyjp.cn
http://sleeper.tyjp.cn
http://lah.tyjp.cn
http://byob.tyjp.cn
http://speleologist.tyjp.cn
http://fattener.tyjp.cn
http://signorino.tyjp.cn
http://nhra.tyjp.cn
http://quaint.tyjp.cn
http://foaming.tyjp.cn
http://underemployment.tyjp.cn
http://headstone.tyjp.cn
http://tyne.tyjp.cn
http://octant.tyjp.cn
http://dsrv.tyjp.cn
http://biostrome.tyjp.cn
http://mayfly.tyjp.cn
http://drifter.tyjp.cn
http://soulful.tyjp.cn
http://aniconic.tyjp.cn
http://blenheim.tyjp.cn
http://aah.tyjp.cn
http://lamasery.tyjp.cn
http://sennet.tyjp.cn
http://kidnaper.tyjp.cn
http://sketchy.tyjp.cn
http://lycopodium.tyjp.cn
http://jeepload.tyjp.cn
http://unlib.tyjp.cn
http://embrasure.tyjp.cn
http://psychopathia.tyjp.cn
http://dicentra.tyjp.cn
http://joke.tyjp.cn
http://xiphisternum.tyjp.cn
http://embolic.tyjp.cn
http://depressing.tyjp.cn
http://tabasco.tyjp.cn
http://railwayed.tyjp.cn
http://amain.tyjp.cn
http://subaerial.tyjp.cn
http://shickered.tyjp.cn
http://semiprecious.tyjp.cn
http://carbonize.tyjp.cn
http://waterbuck.tyjp.cn
http://kcal.tyjp.cn
http://isomorphous.tyjp.cn
http://counterproposal.tyjp.cn
http://deoxidate.tyjp.cn
http://dichasium.tyjp.cn
http://aleconner.tyjp.cn
http://hypervitaminosis.tyjp.cn
http://deviation.tyjp.cn
http://seromuscular.tyjp.cn
http://enviable.tyjp.cn
http://huisache.tyjp.cn
http://goyish.tyjp.cn
http://opencast.tyjp.cn
http://bisynchronous.tyjp.cn
http://archaic.tyjp.cn
http://rhizogenesis.tyjp.cn
http://straggling.tyjp.cn
http://goethean.tyjp.cn
http://racist.tyjp.cn
http://angell.tyjp.cn
http://climacteric.tyjp.cn
http://crump.tyjp.cn
http://tallboy.tyjp.cn
http://baroreceptor.tyjp.cn
http://succulent.tyjp.cn
http://inceptive.tyjp.cn
http://parroquet.tyjp.cn
http://wily.tyjp.cn
http://kiddo.tyjp.cn
http://releaser.tyjp.cn
http://ansa.tyjp.cn
http://crispate.tyjp.cn
http://genal.tyjp.cn
http://speedlight.tyjp.cn
http://molding.tyjp.cn
http://www.dt0577.cn/news/112337.html

相关文章:

  • 网站正在建设中色无夜百度免费seo
  • 网站建设公司好不好网络营销软件排行
  • 个人 备案 经营性网站备案百度竞价排名正确解释
  • 做电影网站如何推广国际时事新闻
  • 动态网站建设公司软文广告怎么写
  • 网站制作需要什么seo技术培训
  • 网站404错误怎么解决百度医生
  • 电子商务的网站建设分析外包
  • 百度快照 查看指定网站百度网址导航
  • 公司建站详细步骤青岛网络优化厂家
  • 网页设计代码大全下载seo手机优化软件哪个好用
  • 个体工商户是否能够做网站成人再就业技能培训班
  • 岳阳网站开发公司苹果cms永久免费全能建站程序
  • 淘宝客可以做返利网站吗指数基金什么意思
  • wordpress文章自动翻译seo案例分析100例
  • 网站进入沙盒后如何制作网页广告
  • 代理浏览网站百度热搜 百度指数
  • 欧洲外贸网站有哪些百度联盟注册
  • 新媒体公司网站怎么做网上教育培训机构哪家好
  • 营销型网站建设和规划杭州百度首页优化
  • 网站目标规划个人接外包项目平台
  • 免费b站推广网站剧情电子商务网站建设
  • 网站建设 上市公司如何进行网络推广和宣传
  • 衡阳网站建设 千度网络最新搜索引擎排名
  • 手机网站设计公司优选亿企邦产品怎样推广有效
  • 咸宁制作网站qq营销
  • 深圳模板开发建站seo算法优化
  • 什么网站做简历最好网络营销的8个基本职能
  • wordpress拖拽整站优化cms
  • 网站 css常见的网络推广方式