小知识(七)

1.TreeView SelectedNodeChanged事件 锁定当前选中节点

注意sender是TreeView

protected void trvwJdmc_SelectedNodeChanged(object sender, EventArgs e)

 {

      string val=((TreeView)sender).SelectedNode.Value;

      Label1.Text=val;

 }

 

2.string.Format()

http://www.ezloo.com/2008/11/string_format.html

http://www.cnblogs.com/tuyile006/archive/2006/07/13/449884.aspx

 

3.Guid.NewGuid().ToString()

Guid是全球唯一标识符,通常用其作为数据表的主键。

http://www.cnblogs.com/ie421/archive/2008/07/25/1251282.html

http://blog.163.com/ayan87@126/blog/static/36536012200691384455109/?fromdm&fromSearch&isFromSearchEngine=yes

 

4.安卓入门

http://www.lewaos.com/bbs/forum.php?mod=viewthread&tid=474

http://www.myapks.com/detail-article-10063.html

http://www.androidfans.com.cn/data/wiki/35/

http://zhidao.baidu.com/question/220925340.html?fr=qrl&cid=1070&index=3

默认安装程序路径(apk) /system/app

默认程序安装路径 /data/app   (访问/data/app目录需要root权限)

文件||程序管理==>RE管理器||查看删除文件(自带文件管理器)、删除程序(自带设置-应用程序)

Android系统中SD卡各文件夹功能详解

天天动听,悠米解霸等音视频软件将文件的默认存放位置位于SD卡得media文件夹下

安装在SD卡上的程序位于.android_secure文件夹内

 

5.基于web的扫描仪控件ScanOnWeb

http://peihexian.iteye.com/blog/1177123

http://www.d9soft.com/soft/87634.htm

裴贺先 http://blog.csdn.net/peihexian/article/details/6084005

          http://peihexian.iteye.com/

asp.net扫描仪编程及ajax图片数据上传    http://peihexian.iteye.com/blog/798966

JQuery扫描仪编程示例代码      http://peihexian.iteye.com/blog/847784

使用后ocx文件被保存在c:\windows\system32\scanonweb.ocx

上传扫描图片到服务器端应注意:

1.提交表单方式 用allImageAsPDFData,allImageAsTIFFData需将webconfig的最大上传值设置的大些(因为默认才4M)

2.用ajax方式传到服务器端时可能为空,可能是上传的图片太大(因为数据量比较大时 ajax提交时浏览器会自动取消http请求)

 

6.ActiveX控件(ocx控件)  cab压缩格式

.cab  http://zh.wikipedia.org/wiki/CAB   (一种压缩格式)

在windows下,还可以使用 WinMount 来打开CAB格式的文件,并进行可视化编辑操作。

.ocx  http://baike.baidu.com/view/393671.htm

ActiveX控件(ocx控件)  与.exe .dll同属于PE文件。

Javascript调用OCX控件(里面加载ocx控件的做法还是按照ScanOnWeb的demo的做法做)  

http://www.blogjava.net/ponzmd/archive/2007/11/29/164071.html

 

7.WinForm 扫描仪器(WIA)  图片ORC识别 (MODI)

WIA

http://blog.csdn.net/fenin/article/details/4237385

http://blog.csdn.net/fenin/article/details/4237445

http://blog.csdn.net/fenin/article/details/4237446

http://blog.csdn.net/fenin/article/details/4237453

http://blog.csdn.net/fenin/article/details/4237457

http://topic.csdn.net/u/20090528/12/b7ec3255-ce55-4918-a9bc-ec30a94fff7f.html(参考--下载wiaaut.dll)

http://stackoverflow.com/questions/8966/using-c-wia-version-2-0-on-vista-to-scan

使用com还要牵扯到注册表,真麻烦

http://topic.csdn.net/u/20080307/08/c8f8853c-aa90-4676-a494-e4cd96044dfe.html

http://blog.csdn.net/haitoo/article/details/4589320

上面的wiaaut.dll这个com组件,我一开始在项目中引用的时候是在桌面上浏览到的,等我把桌面的该dll删除后,程序出现上面俩连接的错误,在其他地方引用该dll,也出现相同错误,非要在桌面引用才可以,难道引用地址写到注册表了? 真JB奇怪。

Office OCR Component (MODI   Microsoft Office Document Imaging)

http://hi.baidu.com/jackeyrain/blog/item/d4959943b9372f169213c61f.html

http://hi.baidu.com/sydxsb/blog/item/21db47dd67305df977c63843.html

http://hi.baidu.com/%BA%D7%D2%ED%D6%AE%CE%A7/blog/item/ab8663fe9d90df8d58ee9053.html

http://explorer.iteye.com/blog/287726

http://www.comicer.com/stronghorse/water/software/officeocr.htm

http://zhidao.baidu.com/question/166794339.html?push=ql

如果出现 对象没有初始化还不能使用 的异常,就是安装office时有些必要OCR组件没有安装。

 

8.修改hosts文件(C:\WINDOWS\system32\drivers\etc)  非fan墙访问提供了SSL的国外网站(需https)

如:facebook     需经常更新hosts http://bbs.scnu.edu.cn/thread-127263-1-1.html 避免过期

 

9.window.parent 与 window.opener 的区别

window.parent  当前窗体window是位于一个iframe里,所以window.parent就是这个iframe所在的窗体(window.parent.parent的window就是位于另一个窗体window的iframe里的iframe里)

具体可用alert(window.parent.parent.location.href)来查看

window.opener 是用window.open()方法打开的窗体的父窗体

 

10.各种数据库互导

使用非精简版MSSQL带的工具(DTS或SSIS)

MSSQL2000以前叫DTS    http://www.cnblogs.com/leiOOlei/archive/2011/04/01/2002212.html

MSSQL2000以后叫SSIS (SSIS 就是从DTS演化而来的2005以上,就不叫DTS了,而是在商业智能开发工具中集成了,现在的名字叫做SSIS(SQL Server集成服务))

http://www.cnblogs.com/upzone/archive/2006/05/15/400709.html

使用注意事项

在MSSQL2005中任意右键选择一个数据库->任务->导入导出向导

之后配置数据源数据库 和 目标数据源数据库   配置成功后会进入导入导出向导窗口   列出了所有数据源数据库里的表

由于各种数据库里的字段类型不同  所以需点击右侧的编辑 进入设置字段类型

有一个  删除并重新创建目标表 的选择    注意对于目标数据源数据库中有的表才可选择此项  意思是先删除再创建 否则会在复制过程中出错      如果目标数据源数据库中有此表却没有选择此项   也会出错  因为要创建的表在目标数据库中已存在

ORACLE中的ODI有类似功能 http://baike.baidu.com/view/627062.htm

 

11.ORACLE基础知识

OleDb连接Oracle数据库连接字符串

Provider=MSDAORA;Data Source=bgdb;Persist Security Info=True;User ID=middle;Password=middle;

OracleClient连接Oracle数据库连接字符串(不要加Provider=MSDAORA;)

Data Source=bgdb;Persist Security Info=True;User ID=middle;Password=middle;

bgdb是NET服务名(TNS)(即plsql登录时的数据库)

每个TNS都对应一个数据库

还有一些TNS是连接到其他主机的数据库,在建这些TNS时先建服务名(即TNS名)然后会要求输入对方主机名称,之后会要求填写服务名(就是对方的本地TNS(一般为数据库名))  这时连接字符串里的Data Source仍为本地TNS名 只不过它对应的是对方的本地TNS

当用这个用户名密码登录时,会通过TNS找到要访问的数据库,然后数据库会根据该用户的访问权限,决定让其访问该数据库的哪个表空间,确定表空间后就可以访问该表空间里的数据文件里的表、视图等了

导入导出表(dmp文件) oracle导入表 如果要导入的表已经存在 不会覆盖原有表的数据 而是在原有表的记录基础上再加上新的记录 所以有可能出现重复记录的情况

用PL/SQL对oracle数据库进行增删改后需要点击提交事务或回滚事务进行对增删改操作的确定或取消

oracle 10g教程

http://wenku.baidu.com/view/3183662fb4daa58da0114aa5.html

http://wenku.baidu.com/view/409e4965f5335a8102d220b1.html

Oracle用户和表空间

http://baike.baidu.com/view/2973562.htm

http://blog.sina.com.cn/s/blog_5416ffb00100tx4v.html

在oracle中创建一个数据库比如说叫xmgl,它跟sqlserver不一样,sqlserver如果创建一个xmgl的数据库的话会直接创建一个xmgl.MDF的数据库文件,但在oracle中会创建一个xmgl的文件夹,然后你就可以先创建一个表空间A再创建一个用户A,将该用户A的默认表空间设为A,在创建表空间的时候会自动创建一个数据文件ora或dbf(与sqlserver不同,它不是一个数据库,但也差不多里面就是表视图什么的),该数据文件就位于这个表空间A里,用户A可以操作该数据文件,当然也可以再创建一个数据文件,用户A同样可以操作它。

dbf文件与ora文件 http://zhidao.baidu.com/question/101928613.html 

备份/还原(貌似win7有问题) exp导出dmp imp导入dmp

http://www.cnblogs.com/yugen/archive/2010/07/25/1784763.html

备份与还原也可以在plsql里的工具里更方便的进行,同时也可以看到当前用户可以管理的所有表空间,该用户默认表空间里的表不加表空间前缀,而不是默认的表空间比如是tb,里面有个表是tbnew,则会看到整个表是tb.tbnew,同样用sql语句可以 select * from tb.tbnew 这样来查。

将别处导出的dmp文件导入到一个数据库里,也可用plsql,导入的数据文件就是当前登录用户的默认表空间里的数据文件。

dblink

两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink。

http://wenku.baidu.com/view/1ed8100190c69ec3d5bb756f.html

create public database link link_name connect to username identified by password using 'SID或TNS';

查询远程数据库服务器上的某个表 select * from 表明@link_name


12.公司分页方法

    ----------------------------------------------1--------------------------------------------------------

 

 <link href="UI/themes/default/easyui.css" rel="stylesheet" type="text/css" />
 <link href="UI/themes/icon.css" rel="stylesheet" type="text/css" />

 

 

   int perPage = 20; //每页显示的记录条

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            int recorders = 获取总记录数;
            rCount.InnerText = recorders.ToString();
            int pages = 0;
            if (recorders % perPage == 0)
            {
                pages = recorders / perPage;
            }
            else
            {
                pages = recorders / perPage + 1;
            }
            pageCount.InnerText = pages.ToString();
            createFolderDetials(1, 1, perPage);
        }
    }
    private void createFolderDetials(int current, int start, int end)
    {
        int recorders = int.Parse(rCount.InnerText.Trim());
        int pages = int.Parse(pageCount.InnerText.Trim());
        enableButtons(current, pages);
        DataTable dt =分页方法(见公司分页方法2)
        grwXX.DataSource = dt;
        grwXX.DataBind();
    }
    //firs page
    protected void firstPage_Click(object sender, EventArgs e)
    {
        createFolderDetials(1, 1, perPage);
    }
    //prev page
    protected void prePage_Click(object sender, EventArgs e)
    {
        int current = int.Parse(select.SelectedValue);
        current--;
        createFolderDetials(current, (current - 1) * perPage + 1, (current * perPage));
    }
    //next
    protected void nextPage_Click(object sender, EventArgs e)
    {
        int current = int.Parse(select.SelectedValue);
        current++;
        createFolderDetials(current, (current - 1) * perPage + 1, (current * perPage));
    }
    //last
    protected void endPage_Click(object sender, EventArgs e)
    {
        int current = int.Parse(pageCount.InnerText.Trim());
        createFolderDetials(current, (current - 1) * perPage + 1, (current * perPage));
    }
    //select change
    protected void select_SelectedIndexChanged(object sender, EventArgs e)
    {
        int current = int.Parse(select.SelectedValue);
        createFolderDetials(current, (current - 1) * perPage + 1, (current * perPage));
    }
    private void enableButtons(int current, int pages)
    {

        initSelect(current, pages);

        if (pages == 0 || pages == 1)
        {
            firstPage.Enabled = false;
            prePage.Enabled = false;
            nextPage.Enabled = false;
            endPage.Enabled = false;
        }
        else
        {
            if (current == 1)
            {
                firstPage.Enabled = false;
                prePage.Enabled = false;
                nextPage.Enabled = true;
                endPage.Enabled = true;
            }
            else
                if (current == pages)
                {

                    firstPage.Enabled = true;
                    prePage.Enabled = true;
                    nextPage.Enabled = false;
                    endPage.Enabled = false;
                }
                else
                {
                    firstPage.Enabled = true;
                    prePage.Enabled = true;
                    nextPage.Enabled = true;
                    endPage.Enabled = true;
                }
        }
    }
    //initialize the select
    private void initSelect(int current, int pages)
    {
        //此处数字20代表下拉框当前显示几页,如果小于20页就1到 current,如果大于20页就 current到 current+20页
        int start = current - 20;
        start = start <= 0 ? 1 : start;
        var end = current + 20;
        end = end <= pages ? end : pages;
        select.Items.Clear();
        int temp = 0;
        for (int i = start; i <= end; i++)
        {
            select.Items.Add(new ListItem(i.ToString(), i.ToString()));
            if (i == current)
            {
                select.SelectedIndex = temp;
            }
            temp++;
        }
        if (pages == 0)
        {
            select.Items.Add(new ListItem("0", "0"));
            rCount.InnerText = "0";
            pageCount.InnerText = "0";
        }
    }

    <div id="pagediv" runat="server" class="toolbar" style="padding: 0px; background: #efefef;

                        width: 100%; vertical-align: bottom; bottom: 0px;">
                        <asp:LinkButton ID="firstPage" class="easyui-linkbutton" ToolTip="首页" plain="true"
                            iconcls="pagination-first" runat="server" OnClick="firstPage_Click">首页</asp:LinkButton>
                        <asp:LinkButton ID="prePage" class="easyui-linkbutton" ToolTip="上一页" plain="true"
                            iconcls="pagination-prev" runat="server" OnClick="prePage_Click">上一页</asp:LinkButton>
                        <asp:LinkButton ID="nextPage" class="easyui-linkbutton" ToolTip="下一页" plain="true"
                            iconcls="pagination-next" runat="server" OnClick="nextPage_Click">下一页</asp:LinkButton>
                        <asp:LinkButton ID="endPage" class="easyui-linkbutton" ToolTip="末页" plain="true"
                            iconcls="pagination-last" runat="server" OnClick="endPage_Click">末页</asp:LinkButton>
                        <span class="spinner-text">第</span>
                        <asp:DropDownList ID="select" runat="server" class="combo" AutoPostBack="True" OnSelectedIndexChanged="select_SelectedIndexChanged">
                        </asp:DropDownList>
                        <span class="spinner-text">页/共&nbsp;</span><span id="pageCount" class="spinner-text"
                            style="color: #3399CC;" runat="server"></span>&nbsp;<span class="spinner-text">页</span>
                        <span class="spinner-text">共&nbsp;</span><span id="rCount" class="spinner-text" style="color: #3399CC;"
                            runat="server"></span>&nbsp;<span class="spinner-text">条</span>
                    </div>
 

    ----------------------------------------------2--------------------------------------------------------

    /*-----------toolbar-------------------------*/

a
{
	text-decoration: underline;
}


.toolbar
{
	height: 28px;
	line-height: 28px;
	white-space: nowrap;
	border: 1px solid #DDDCE4;
	background-color: #EFEFEF;
	font-size: 12px;
	color: #1F6487;
}
.menubar
{
	margin-bottom: 1px;
	border-bottom: 1px solid #DDDCE4;
	color: #1F6487;
}
.pagebar
{
	margin-top: 1px;
	border-top: 1px solid #DDDCE4;
	color: #1F6487;
}

/*------------分割线--------------------------*/
.menu-sep-h
{
	border-left: outset #DDDCE4 1px;
	height: 28px;
	margin-left: 10px;
	margin-right: 10px;
}
.menu-sep-v
{
	margin: auto 3px;
	width: 2px;
	font-size: 2px;
	background: url('../../UI/themes/default/images/menu_sep.png') repeat-x;
}
/*------------分页左右部分---------------------*/
.pagebar-left
{
	float: left;
}
.pagebar-right span
{
	font-weight: 900;
	margin-left: 5px;
	margin-right: 5px;
}
.pagebar-right
{
	float: left;
}
 

 

int perPageCount = 20;   //每页显示的记录条
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
   {
       initGridview(1, 1, perPageCount);
    }
 }
private void initGridview(int current, int start, int end)
{
    DataTable dt = new DataTable();
    int recorders = 0;   //数据行数
    int pages = 0;    //页数
    recorders=获取总记录数
    lblRecorderCount.Text = recorders.ToString();
    if (recorders % perPageCount == 0)
    {
       pages = recorders / perPageCount;
    }
    else
    {
       pages = recorders / perPageCount + 1;
     }
     lblPageCount.Text = pages.ToString();
     this.ddlCurrentPage.Items.Clear();
     for (int i = 1; i <= pages; i++)
    {
       this.ddlCurrentPage.Items.Add(new ListItem(i.ToString(), i.ToString()));
     }
     if (ddlCurrentPage.Items.Count > 0)
    {
       this.ddlCurrentPage.SelectedIndex = current - 1;//当前页绑定
     }
     else
    {
       ddlCurrentPage.Items.Add(new ListItem("0", "0"));
     }
     dt = 分页语句返回需要的那部分数据(start,end);
//oracle分页语句  SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME [可选过滤条件 WHERE FIEILD_NAME 条件]) A WHERE ROWNUM <= 40) WHERE RN >= 21   有时是对多表查询的结果进行分页,可能会有一些表的字段名字相同,会报ORA-00918: 未明确定义列的错误,需要将前面的A.*指出具体的字段A.某字段(但某字段不能是那些字段名相同的字段)
     GridView.DataSource=dt;   GridView.DataBind();
     enableButtons(pages, current);
    }

//使能翻页按钮
    private void enableButtons(int pages, int current)
    {
        if (pages == 0 || pages == 1)
        {
            this.btnFirstPage.Enabled = false;
            this.btnPrePage.Enabled = false;
            this.btnNextPage.Enabled = false;
            this.btnEndPage.Enabled = false;
        }
        else
        {
            if (current == 1)
            {
                this.btnFirstPage.Enabled = false;
                this.btnPrePage.Enabled = false;
                this.btnNextPage.Enabled = true;
                this.btnEndPage.Enabled = true;
            }
            else
                if (current == pages)
                {
                    this.btnFirstPage.Enabled = true;
                    this.btnPrePage.Enabled = true;
                    this.btnNextPage.Enabled = false;
                    this.btnEndPage.Enabled = false;
                }
                else
                {
                    this.btnFirstPage.Enabled = true;
                    this.btnPrePage.Enabled = true;
                    this.btnNextPage.Enabled = true;
                    this.btnEndPage.Enabled = true;
                }
        }
    }

 //首页
    protected void btnFirstPage_Click(object sender, EventArgs e)
    {
        initGridview(1, 0, perPageCount);
    }
    //上一页
    protected void btnPrePage_Click(object sender, EventArgs e)
    {
        int current = ddlCurrentPage.SelectedIndex + 1;
        current -= 1;
        initGridview(current, (current - 1) * perPageCount + 1, current * perPageCount);
    }
    //下一页
    protected void btnNextPage_Click(object sender, EventArgs e)
    {
        int current = ddlCurrentPage.SelectedIndex + 1;
        current += 1;
        initGridview(current, (current - 1) * perPageCount + 1, current * perPageCount);
    }
    //末页
    protected void btnEndPage_Click(object sender, EventArgs e)
    {
        int current = ddlCurrentPage.Items.Count;
        initGridview(current, (current - 1) * perPageCount + 1, current * perPageCount);
    }
    //下拉
    protected void ddlCurrentPage_SelectedIndexChanged(object sender, EventArgs e)
    {
        int current = ddlCurrentPage.SelectedIndex + 1;
        initGridview(current, (current - 1) * perPageCount + 1, current * perPageCount);
    }

 

<div class="toolbar pagebar">     
<asp:Button ID="btnFirstPage" runat="server" Text="首页" OnClick="btnFirstPage_Click" />
        <asp:Button ID="btnPrePage" runat="server" Text="上一页" OnClick="btnPrePage_Click" />
        <asp:Button ID="btnNextPage" runat="server" Text="下一页" OnClick="btnNextPage_Click" />
        <asp:Button ID="btnEndPage" runat="server" Text="末页" OnClick="btnEndPage_Click" />
        <label>
            当前第</label>
        <asp:DropDownList ID="ddlCurrentPage" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlCurrentPage_SelectedIndexChanged">
        </asp:DropDownList>
        <label>
            页</label>
        <label>
            共</label>
        <asp:Label ID="lblPageCount" runat="server" Text=""></asp:Label>
        <label>
            页</label>
        <label>
            共</label>
        <asp:Label ID="lblRecorderCount" runat="server" Text=""></asp:Label>
        <label>
            条记录</label>
    </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值