zoukankan      html  css  js  c++  java
  • Gentle.Net学习笔记四:修改代码,使用Oracle数据库

        开始使用Gentle.Net的时候,我使用编译好的类库,可是不久就发现,如果要更好的利用Gentle.Net,你就不得不做一些修改,所以,还是使用源代码的方式为好.
       使用源代码,Gentle.Net作为三个项目添加的解决方案中, Gentle.Common;Gentle.FrameWork;Gentle.Provider.Oracle (根据项目的需要选择使用那个Provider), 有一个注意事项就是要引入Gentle的密钥对,否则不能编辑,这个在文档中右说明,我不在赘言.但是你已可以去掉这个签名,或者换成自己的签名,我就是去掉了签名使用的,这样方便些,不用每台机器都引入签名!就是修改那个AssemblyInfo.cs的文档中
    [assembly: AssemblyKeyName( "Gentle" )]
    去掉引号中的内容即可,要注意的是三个项目都有这个文件的.
    [assembly: AssemblyKeyName( "" )]

    好了,说了这么多,其实是为了引入这次的主角,Oracle!真不知道Oracle的Provider是怎么想的,字符串类型的数据字段竟然不能保存空字符串(就是引号之间甚麽都没有,可不是Null哟),害得我折腾了半天儿,终于在网上找到了原因! 下面就是我的解决方案,修改了一个函数,把空字符串替换为Null.希望对您有所帮助.
    修改函数所在位置:Client\SqlStatement.cs
    private void SetParameter( IDataParameter param, object val, FieldMap fm )
      {
       Check.Verify( param.Direction == ParameterDirection.Input ||
        param.Direction == ParameterDirection.InputOutput, "Cannot set value of output parameters!" );
       // do additional checking for known types
       if( map != null && fm != null )
       {
        param.Value = GetParameterValue( val, map, fm );

        //// 下面这几行语句添加自 Gu Zhigang
        /// 解决问题:因为oracle代理驱动的原因 ,字符型数据不能插入空字符串
        //if(this.Command.Connection.GetType().Name.IndexOf("Oracle",0)>=0)
        {
         if(param.DbType==DbType.AnsiString && param.Value.ToString()=="")
          param.Value=DBNull.Value;
        }
        //// 添加语句结束
       }
       else // unknown type - no clipping or fancy checks, just do it
       {
        param.Value = val != null ? val : DBNull.Value;
       }
      }
    虽然不是真正的解决问题,但是能用就好了,要注意的就是程序中要注意这个变化.

  • 相关阅读:
    r语言 包说明
    python中的map()函数
    Java打印整数的二进制表示(代码与解析)
    python 两个字典合并
    判断一个字符串中是否含有中文字符:
    Python字符串的encode与decode研究心得——解决乱码问题
    javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题
    python读取剪贴板报错 pywintypes.error: (1418, 'GetClipboardData', 'xcfxdfxb3xccxc3xbbxd3xd0xb4xf2xbfxaaxb5x
    python openpyxl 2.5.4 版本 excel常用操作封装
    pycharm 设置文件编码的位置:Editor-->File Encodings
  • 原文地址:https://www.cnblogs.com/dajianshi/p/240423.html
Copyright © 2011-2022 走看看