• 编程中遇到的小问题


    1. Oracle中,对于Number(p,d)数据类型,如果数据的整数部分超出,则会报出异常,如果是小数部分长度超出,则会自动截断。

     

    2. 在.Net中使用微软提供的Oracle数据访问提供程序时,如果遇到较大的Number类型时,则可能会报出OCI-22053溢出错误。原因:过大的Number类型在.Net平台中没有对应的数据类型(可采用OracleNumber 类接收)。解决方法:采用Oracle自身的提供程序也可解决(未尝试)。参见:http://www.iwms.net/n1249c18.aspx

     

    3. 在Oracle参数化绑定时,参数的值不能使用.NET内置的数据类型,而需要采用Oracle特定的类型,如OracleNumber、OracleDate等,Null值也需要使用OracleNumber.Null或OracleDate.Null来处理。

     

    4. 将txt文件的扩展名改为udl,可以直接打开数据链接工具来生成连接字符串。

     

    5. Visual studio的查找和替换窗口中,使用正则表达式替换时需注意的技巧:反向引用(使用匹配结果中的部分内容)来替换时,在“查找内容”中使用{内容}来捕获匹配,在“替换为”中使用\数字(如:\1)来使用匹配结果。如:将所有的<IMyService>替换为MyService。可以将\<{IMyService}\>替换为:\1

     

    6. 水晶报表A3打印时,预览页面时纸张为A4大小,显示不正常,后面的列超出纸张范围。经检查为本机打印机驱动错误,认不出A3纸张。删除错误驱动重装后,异常排除。

     

    7.window.showModalDialog()弹出的窗体中,对于Response.Write方式实现文件下载,是不能正常运行的(window.open无此情况)。解决方式:在弹出的窗体中,嵌套iframe,将其src指向真正要显示的页面。此方式可绕过showModalDialog()的限制。另外,模式对话框会有被自动缓存的问题和回发时弹出非模式窗口的问题。可在对话框页面插入:<META http-equiv="Pragma" content="no-cache" /> 和 <base target="_self"/>来解决此问题。

     

    8.在GET方式请求中,如果查询参数中包含一些类似于SQL语句查询条件或排序条件(如:?Filter=escape(‘ag=1 and b2=2’)&OrderCol=escape('aaa desc'))时,在弹出对话框时,会被IE8拦截,并显示“跨站脚本被阻止”。此问题可在Page_Load中加入以下语句来解决:Response.AddHeader("X-XSS-Protection", "0");

     

    9.IE6、IE7、FireFox通用代码(无提示关闭window): 
        window.opener=null;     window.open('','_self');     window.close();

    或window.open('','_parent','');    window.close();


    10. 伪Ajax(采用隐藏iframe)响应为文件流时回调打开窗口中的函数(Ajax不能返回文件流):

        //思路:先生成文件,然后请求至一个页面,采用此页面来回调功能并输出此文件,其中返回Action.aspx文件部分代码如下:

        Response.Write("<script>parent.document.getElementById('btnSecurityRisk').disabled=true;</script>");
        Response.Write(string.Format("<script>window.open('FileDownload.aspx?File={0}',null,'height=1, width=1,top='+((screen.availHeight-1)/2)+',left='+((screen.availWidth-1)/2));</script>", Server.UrlEncode("~/File/PdfTemp/" + fi.Name)));

     

    11. Oracle使用date和timestamp关键字将字符串转换为日期型:

            SELECT DATE'2010-11-12' FROM dual;
            SELECT timestamp'2010-12-31 21:10:2' FROM dual;

     

    12. JQuery ajax调用asp.net的webMethod问题

            .Framework 3.5中,无需特殊设置,可以直接用$.ajax调用在aspx.cs中,访问级别public,静态的,标记为【webmethod】的方法。
            jquery代码:$.ajax({type:"post",url:"default.aspx/functionname",contentType:"application/json", success:function(a){alert(a.d);}} 

            至于没有参数的data,可写可不写。并不是必须的。
            2.0中,首先在配置文件中加上:<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </httpModules>就可以和3.5中一样使用了。
            至于在页面类声明前加scriptservice也不是必须的。

     

    13. ashx一般处理程序不能使用Session的问题:让ashx程序实现IRequiresSessionState接口即可。

     

    14. js中的appendChild(node)方法在IE6/7下无效Bug的解决方法:在table动态复制行时,在IE6、7下无效。如:
    var tr=tbl.rows[tbl.rows.length-1].cloneNode(true);  
    tbl.appendChild(tr);    //IE6/7不兼容,可使用jquery来代替:$(tbl).append(tr);
    以上代码在IE6/7中,并不能实现在表格最后添加一行的目的,并使用jquery来解决。

     

    15. MVC3的Razor语法中,对于<div id=cate_content_block_@item.CategoryID />语法不能正常解析。需要使用<div id=cate_content_block_@(item.CategoryID) />才可以,即需要通过括号来输出变量才能正常编译。

  • 相关阅读:
    c#序列化和反序列化list
    centos7安装oracle 11gr2
    centos7系统备份与还原
    FAT32和NTFS最大支持的单个文件大小分别是多大?
    linux挂载远程windows服务器上的ISO,给内网的服务器安装软件
    tomcat8启动慢原因及解决办法
    CentOS统的7个运行级别的含义
    对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
    空侃简介
    linux环境部署
  • 原文地址:https://www.cnblogs.com/feng8621/p/2924743.html
Copyright © 2020-2023  润新知