综合编程经验

作者:V君 发布于:2013-7-31 10:05 Wednesday 分类:挖坑经验

鉴于博客重见天日,

把V君这些天积累的编程经验, 贴出来分享吧!

有一些是已懂但记不清具体内容,经过咕狗找到并测试后,“缓存”起来的.

 

代码相关

C# 隐式转换定义

public static implicit operator 目标类型(源类型 n)

public static implicit operator 源类型(目标类型 n)

~

C# 代码模板 - 判断两个范围重叠

//不能用在Linq To SQL

class DupChecker<T> where T : struct,  IComparable<T>

{

    public static bool IsDup(T a, T b, T c, T d)

    {

        return Between(a, c, d)  //A是否在cd之间。

            || Between(b, c, d)  //B是否在cd之间。

            || Between(c, a, b)  //C是否在ab之间。

            || Between(d, a, b); //D是否在ab之间。

    }

 

    private static bool Between(T a, T b, T c)

    {

        return SmallThan(b, a) && LargeThan(c, a);

    }

 

    private static bool LargeThan(T a, T b)

    {

        return a.CompareTo(b) > 0;

    }

 

    private static bool SmallThan(T a, T b)

    {

        return a.CompareTo(b) < 0;

    }

}

 

//要使用在 Linq To SQL 只能手动改到Where

private static bool IsDup(DateTime a, DateTime b, DateTime c, DateTime d)

{

return (c < a && d > a)  //A是否在cd之间。

|| (c < b && d > b)  //B是否在cd之间。

|| (a < c && b > c)  //C是否在ab之间。

|| (a < d && b > d); //D是否在ab之间。

}

~

C# Mdb读取错误

环境:Win2008 x64

异常信息:The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.

解决方法: 使用x86生成,解决

~

Asp.net相关

Asp.net 自动回传+JS

当控件启用了AutoPostBack还想触发客户端事件时,咋办? 这就需要一点技巧了

变相使用CustomValidator的客户端function

function ddlCountryChange(source, args) {

    //args.Value 获得控件值

    CenterViewByCountryCity(args.Value, '');

}

//ps:能看出这是在调用咕狗地图么 

~

Asp.net 跨页回传

if (IsPostBack == false)

{

var pg = this.PreviousPage;

 

if (pg == null || pg.IsCrossPagePostBack == false)

{

Response.Write("非法操作");

return;

}

 

//干活的干

}

~

Asp.net 64位操作系统下在IIS设置32位模式用以支持MDB

池 -> 高级设置 -> Enable 32 - Bit Applications -> True

~

HTML相关

HTML 表格边框

一直以来都是用 table border=1 cellspacing=0 来设置边框, 样式只能由浏览器决定 IE粗条 Chrome细线

后来发现:

使用背景色 + cellspacing=1 + 单元格背景色 就可以得到均匀的表格边框了!

border可以丢弃

~

HTML Z-index IE解决

做一个导航菜单,鼠标停留显示子菜单.

子菜单Z-index已经设置得很大,Chrome也正常 IE却被下面的内容挡着了

咕狗方法并测试,原来要突显对象的父容器也要跟着调大Z-Index

~

HTML onMouseOut 子元素

这个问题是上一个问题的延续

子菜单要求鼠标移开就隐藏, 当然使用 mouseout 啦!

但事实上并没有这么简单:子菜单每一项的mouseout父容器都会触发...

咕狗来一段虽不懂但觉厉的代码:

function mouseout_x(ae) {

    var e = window.event || ae;

    var s = e.toElement || e.relatedTarget;


    if (document.all) {

        if (!this.contains(s)) {

            //干活的干

        }

    } else {

        var res = this.compareDocumentPosition(s);

        if (!(res == 20 || res == 0)) {

            //干活的干

        }

    }

}

 

这货解决了问题.

~

Office操作相关

PPT 不显示页码

新建一新文件,在母版编辑状态复制页码控件到该文件。成功显示编号。

~

C# Excel读取单元格

//Office的Interop很那啥 不单麻烦死 下标还奇葩,几乎全部的索引都从1开始

var arr = (Array)MySheet.get_Range(

    MySheet.Cells[1, 1]

    , MySheet.Cells[lastRow, 2]

)

.Cells

.Value2;

~

C# Excel操作图表

Sheet转换

常见的Sheet转成Excel.Worksheet

图表Sheet要转成Excel.Chart


操作代码可以通过录制宏来参考

复制图片步骤,选定要复制的对象,按Shift再点编辑菜单才会看到复制图片

~

C# Excel不能合并单元格

在编写一个报表生成程序时遇上一个奇怪的问题

操作单元格合并,保存后打开查看发现单元格没有合并

仔细检查宏 然后发现

需要保存成 XlFileFormat.xlWorkbookNormal

看来是保存文件时选用版本的问题

~


数据库相关

sql2008 不允许保存更改

在对表进行修改后保存, 弹出一个错误不让保存

sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表

解决方法:

启动SQL Server 2008 Management Studio

工具菜单----选项----Designers(设计器)---- 取消勾选“阻止保存要求重新创建表的更改 即可。

点击查看原图

因为在公司的系统是繁体的, 并不是想晒什么啦

~

Mdb 压缩

Access的Mdb文件在内容被删除后体积并不会减小, 这就需要对数据库进行压缩了.


Access2003数据库压缩方法

打开要压缩的数据库,打开“工具”下的“数据库实用工具”,执行“压缩和修复数据库”操作。


Access2007数据库压缩方法

打开要压缩的数据库,点击左上角的“Office按钮”-> 管理 -> 压缩和修复数据库。

~

标签: 软件开发 C#

引用地址:

评论:

(垃圾网址已删除)
2014-03-23 10:25
让月亮带给你温馨[标签:标题]
(垃圾网址已删除)
找回营养的货
2013-08-05 22:50
新战刚开就是mentalOmega 你js也这么萌 332
V君
2013-08-05 23:16
@找回营养的货:mentalOmega是啥? 呃.. 前端又不是咱长处, 那就卖卖萌啰. 2333

发表评论:

Powered by emlog 去你妹的备案 sitemap