<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Loading...

    java .net

    function thisFormSubmit(){
            var previewWindow = window.open("","colReport","resizable=yes, scrollbars=1,status=1,toolbar=0,left=100, top=70");  
           
        document.forms[0].target= "colReport"; //previewWindow.name
            document.forms[0].submit();
        }
    posted @ 2008-08-26 22:06 豬 閱讀(754) | 評(píng)論 (0)編輯 收藏

          公司買的報(bào)表工具,為了節(jié)省成本,將報(bào)表服務(wù)單獨(dú)部署了一個(gè)應(yīng)用,我們的業(yè)務(wù)系統(tǒng)調(diào)用報(bào)表應(yīng)用展現(xiàn)報(bào)表,開發(fā)還算順利,現(xiàn)在到了用戶試用了,問(wèn)題來(lái)了

         其中有個(gè)功能叫報(bào)表反查,頁(yè)面中包含了四個(gè)fream,用戶在其中三個(gè)fream中設(shè)置查詢條件,當(dāng)點(diǎn)擊查詢按鈕,調(diào)用javascript得到每個(gè)fream中的參數(shù),并將參數(shù)賦值到第四個(gè)fream中的form中的隱藏屬性中,然后提交這個(gè)form(這時(shí)的form是在業(yè)務(wù)系統(tǒng)中的jsp)調(diào)用報(bào)表服務(wù)器的action,返回報(bào)表(此時(shí)的是報(bào)表應(yīng)用返回的頁(yè)面,不再是業(yè)務(wù)系統(tǒng)中的jsp了)。

         這涉及到了兩個(gè)應(yīng)用,再次點(diǎn)擊查詢按鈕,Ie就會(huì)報(bào)“沒(méi)有權(quán)限”錯(cuò)誤。

        在網(wǎng)上搜,一個(gè)結(jié)論,瀏覽器不允許javaScript跨域訪問(wèn),據(jù)說(shuō)為了安全,那咋辦,得用啊?!

        搜啊搜,找到一個(gè)文章專門討論這事兒的,作者提出了三種解決方案:

        1、在涉及到跨域訪問(wèn)的頁(yè)面中加入

    <script language="JavaScript">
    <!--
    document.domain = "mycompany.com"; //指定 document 所屬的域
    -->
    </script>

    這樣可以蒙混過(guò)瀏覽器,但是這種方法必須滿足一個(gè)條件,就是兩個(gè)應(yīng)用必須屬于同一個(gè)父域,也就是,比如,abc.def.com父域就該是def.com,如果document.domain = "域名";設(shè)置的不是其父域,就會(huì)報(bào)“參數(shù)無(wú)效”的錯(cuò)誤。

          而問(wèn)題是我們的報(bào)表服務(wù)器和業(yè)務(wù)系統(tǒng)服務(wù)器不在一個(gè)父域下,這條路是行不通了

         召集了公司幾個(gè)同事討論,最后得出兩個(gè)方案,一是改為彈出窗口,而是寫webservice

          考慮到工作量,修改要小,選擇了彈出窗口。

    2、是IE獨(dú)有了,就是彈出showmodaldialog,這種方法因?yàn)镮E升級(jí)又行不通了。

    3、就是通過(guò)服務(wù)器處理了。

    總結(jié),現(xiàn)在看來(lái),解決這個(gè)問(wèn)題就是1和3兩種方案,第一種是在客戶端處理,局限就是兩個(gè)應(yīng)用必須在同一個(gè)父域下,還有就是好像不是所有的瀏覽器支持設(shè)置domain。第二種就是通過(guò)服務(wù)器處理,這種方法好像勢(shì)必要刷新整個(gè)窗口,像我這種情況,一個(gè)頁(yè)面中有幾個(gè)fream的情況,像保留用戶設(shè)置的參數(shù),還么有想到好的解決方法。

    還想到一條路就是用ajax,這倒是實(shí)現(xiàn)了無(wú)刷新,但是我們的報(bào)表頁(yè)面展現(xiàn)是一個(gè)自定義的jsp標(biāo)簽,還是要服務(wù)器展現(xiàn),這條路沒(méi)走下去。

    參考文章

    posted @ 2008-08-26 22:06 豬 閱讀(5590) | 評(píng)論 (1)編輯 收藏
    posted @ 2008-08-26 22:06 豬 閱讀(86) | 評(píng)論 (0)編輯 收藏
    <html>
    <head>

    <script type="text/javascript">
    function blinklink()
    {
    if (!document.getElementById('message').style.color)
    {
    document.getElementById('message').style.color="red"
    }
    if (document.getElementById('message').style.color=="red")
    {
    document.getElementById('message').style.color="black"
    }
    else
    {
    document.getElementById('message').style.color="red"
    }
    timer=setTimeout("blinklink()",100)
    }

    function stoptimer()
    {
    clearTimeout(timer)
    }
    </script>
    </head>

    <body onload="blinklink()" onunload="stoptimer()">
    <div id="message" >Message</div>

    <div id="new_task">Message</a>

    <script language="JavaScript">
    <!-- Begin
    function initArray() {
    for (var i = 0; i < initArray.arguments.length; i++) {
    this[i] = initArray.arguments[i];
    }
    this.length = initArray.arguments.length;
    }
    var colors = new initArray(
    "red",
    "blue",
    "green",
    "purple",
    "black",
    "tan",
    "red");
    delay = .5; // seconds
    link = 0;
    vlink = 0;
    function linkDance() {
    link = (link+1)%colors.length;
    vlink = (vlink+1)%colors.length;
    new_task.style.color = colors[link];
    setTimeout("linkDance()",delay*1000);
    }
    function linkDance1() {
    link = (link+1)%colors.length;
    vlink = (vlink+1)%colors.length;
    new_task1.style.color = colors[link];
    setTimeout("linkDance1()",delay*1000);
    }

    linkDance();

    // End -->
    </script>
    </body>

    </html>
    posted @ 2008-08-26 22:06 豬 閱讀(626) | 評(píng)論 (0)編輯 收藏
    <script language="javaScript">
    <!--
    String.prototype.trim = function()
    {
        // 用正則表達(dá)式將前后空格
        // 用空字符串替代。
        return this.replace(/(^\s*)|(\s*$)/g, "");
    }

    buildTable.rows[1].cells[2].innerText.trim() == "已生成"
    //-->
    </script>
    posted @ 2008-08-26 22:06 豬 閱讀(801) | 評(píng)論 (0)編輯 收藏
    又到年了,google了張年的圖片,貼上,添點(diǎn)年味,添點(diǎn)喜慶,祝所有~~元旦快樂(lè)
    posted @ 2008-08-26 22:06 豬 閱讀(103) | 評(píng)論 (0)編輯 收藏
    private void btnPrint_Click(object sender, EventArgs e)
            {
                SendKeys.Send("%{PRTSC}");
                Application.DoEvents();
                this.printDocument1.Print();  
            }

            private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                IDataObject iData = Clipboard.GetDataObject();
                Image img = (Image)iData.GetData(DataFormats.Bitmap);
                e.Graphics.DrawImage(img, 0, 0);
            }
    posted @ 2008-08-26 22:06 豬 閱讀(1036) | 評(píng)論 (0)編輯 收藏
    要回答這個(gè)問(wèn)題不能一概而論,有時(shí)候使用Vector比較好;有時(shí)是ArrayList,有時(shí)候這兩個(gè)都不是最好的選擇。你別指望能夠獲得一個(gè)簡(jiǎn)單肯定答案,因?yàn)檫@要看你用它們干什么。下面有4個(gè)要考慮的因素:
    l API
    l 同步處理
    l 數(shù)據(jù)增長(zhǎng)性
    l 使用模式
    下面針對(duì)這4個(gè)方面進(jìn)行一一探討
    API
    在由Ken Arnold等編著的《Java Programming Language》(Addison-Wesley, June 2000)一書中有這樣的描述,Vector類似于ArrayList.。所有從API的角度來(lái)看這兩個(gè)類非常相似。但他們之間也還是有一些主要的區(qū)別的。

    [b]同步性
    Vector是同步的。這個(gè)類中的一些方法保證了Vector中的對(duì)象是線程安全的。而ArrayList則是異步的,因此ArrayList中的對(duì)象并不是線程安全的。因?yàn)橥降囊髸?huì)影響執(zhí)行的效率,所以如果你不需要線程安全的集合那么使用ArrayList是一個(gè)很好的選擇,這樣可以避免由于同步帶來(lái)的不必要的性能開銷。
    數(shù)據(jù)增長(zhǎng)
    從內(nèi)部實(shí)現(xiàn)機(jī)制來(lái)講ArrayList和Vector都是使用數(shù)組(Array)來(lái)控制集合中的對(duì)象。當(dāng)你向這兩種類型中增加元素的時(shí)候,如果元素的數(shù)目超出了內(nèi)部數(shù)組目前的長(zhǎng)度它們都需要擴(kuò)展內(nèi)部數(shù)組的長(zhǎng)度, Vector缺省情況下自動(dòng)增長(zhǎng)原來(lái)一倍的數(shù)組長(zhǎng)度,ArrayList是原來(lái)的50%,所以最后你獲得的這個(gè)集合所占的空間總是比你實(shí)際需要的要大。所以如果你要在集合中保存大量的數(shù)據(jù)那么使用Vector有一些優(yōu)勢(shì),因?yàn)槟憧梢酝ㄟ^(guò)設(shè)置集合的初始化大小來(lái)避免不必要的資源開銷。
    使用模式
    在ArrayList 和Vector中,從一個(gè)指定的位置(通過(guò)索引)查找數(shù)據(jù)或是在集合的末尾增加、移除一個(gè)元素所花費(fèi)的時(shí)間是一樣的,這個(gè)時(shí)間我們用O(1)表示。但是,如果在集合的其他位置增加或移除元素那么花費(fèi)的時(shí)間會(huì)呈線形增長(zhǎng):O(n-i),其中n代表集合中元素的個(gè)數(shù),i代表元素增加或移除元素的索引位置。為什么會(huì)這樣呢?以為在進(jìn)行上述操作的時(shí)候集合中第i和第i個(gè)元素之后的所有元素都要執(zhí)行位移的操作。這一切意味著什么呢?
    這意味著,你只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是其他操作,你最好選擇其他的集合操作類。比如, LinkList集合類在增加或移除集合中任何位置的元素所花費(fèi)的時(shí)間都是一樣的—O(1),但它在索引一個(gè)元素的使用缺比較慢-O(i),其中i是索引的位置.使用ArrayList也很容易,因?yàn)槟憧梢院?jiǎn)單的使用索引來(lái)代替創(chuàng)建iterator對(duì)象的操作。LinkList也會(huì)為每個(gè)插入的元素創(chuàng)建對(duì)象,所有你要明白它也會(huì)帶來(lái)額外的開銷。
    最后,在《Practical Java》一書中Peter Haggar建議使用一個(gè)簡(jiǎn)單的數(shù)組(Array)來(lái)代替Vector或ArrayList。尤其是對(duì)于執(zhí)行效率要求高的程序更應(yīng)如此。因?yàn)槭褂脭?shù)組 (Array)避免了同步、額外的方法調(diào)用和不必要的重新分配空間的操作。
    posted @ 2008-08-26 22:06 豬 閱讀(103) | 評(píng)論 (0)編輯 收藏
    Javascript技巧參考
    事件源對(duì)象
    event.srcElement.tagName
    event.srcElement.type
    捕獲釋放
    event.srcElement.setCapture();
    event.srcElement.releaseCapture();
    事件按鍵
    event.keyCode
    event.shiftKey
    event.altKey
    event.ctrlKey
    事件返回值
    event.returnValue
    鼠標(biāo)位置
    event.x
    event.y
    窗體活動(dòng)元素
    document.activeElement
    綁定事件
    document.captureEvents(Event.KEYDOWN);
    訪問(wèn)窗體元素
    document.all("txt").focus();
    document.all("txt").select();
    窗體命令
    document.execCommand
    窗體COOKIE
    document.cookie
    菜單事件
    document.oncontextmenu
    創(chuàng)建元素
    document.createElement("SPAN");
    根據(jù)鼠標(biāo)獲得元素:
    document.elementFromPoint(event.x,event.y).tagName=="TD
    document.elementFromPoint(event.x,event.y).appendChild(ms)
    窗體圖片
    document.images[索引]
    窗體事件綁定
    document.onmousedown=scrollwindow;
    元素
    document.窗體.elements[索引]
    對(duì)象綁定事件
    document.all.xxx.detachEvent('onclick',a);
    插件數(shù)目
    navigator.plugins
    取變量類型
    typeof($js_libpath) == "undefined"
    下拉框
    下拉框.options[索引]
    下拉框.options.length
    查找對(duì)象
    document.getElementsByName("r1");
    document.getElementById(id);
    定時(shí)
    timer=setInterval('scrollwindow()',delay);
    clearInterval(timer);
    UNCODE編碼
    escape() ,unescape
    父對(duì)象
    obj.parentElement(dhtml)
    obj.parentNode(dom)
    交換表的行
    TableID.moveRow(2,1)
    替換CSS
    document.all.csss.href = "a.css";
    并排顯示
    display:inline
    隱藏焦點(diǎn)
    hidefocus=true
    根據(jù)寬度換行
    style="word-break:break-all"
    自動(dòng)刷新
    <meta HTTP-EQUIV="refresh" CONTENT="8;URL=http://c98.yeah.net">
    簡(jiǎn)單郵件
    <a href="mailto:aaa@bbb.com?subject=ccc&body=xxxyyy">
    快速轉(zhuǎn)到位置
    obj.scrollIntoView(true)

    <a name="first">
    <a href="#first">anchors</a>
    網(wǎng)頁(yè)傳遞參數(shù)
    location.search();
    可編輯
    obj.contenteditable=true
    執(zhí)行菜單命令
    obj.execCommand
    雙字節(jié)字符
    /[^\x00-\xff]/
    漢字
    /[\u4e00-\u9fa5]/
    讓英文字符串超出表格寬度自動(dòng)換行
    word-wrap: break-word; word-break: break-all;
    透明背景
    <IFRAME src="1.htm" width=300 height=180 allowtransparency></iframe>
    獲得style內(nèi)容
    obj.style.cssText
    HTML標(biāo)簽
    document.documentElement.innerHTML
    第一個(gè)style標(biāo)簽
    document.styleSheets[0]
    style標(biāo)簽里的第一個(gè)樣式
    document.styleSheets[0].rules[0]
    防止點(diǎn)擊空鏈接時(shí),頁(yè)面往往重置到頁(yè)首端。
    <a href="javascript:function()">word</a>
    上一網(wǎng)頁(yè)源
    asp:
    request.servervariables("HTTP_REFERER")
    javascript:
    document.referrer
    釋放內(nèi)存
    CollectGarbage();
    禁止右鍵
    document.oncontextmenu = function() { return false;}
    禁止保存
    <noscript><iframe src="*.htm"></iframe></noscript>
    禁 止選取<body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false"onmouseup="document.selection.empty()>
    禁止粘貼
    <input type=text onpaste="return false">
    地址欄圖標(biāo)
    <link rel="Shortcut Icon" href="favicon.ico">
    favicon.ico 名字最好不變16*16的16色,放虛擬目錄根目錄下
    收藏欄圖標(biāo)
    <link rel="Bookmark" href="favicon.ico">
    查看源碼
    <input type=button value=查看網(wǎng)頁(yè)源代碼 onclick="window.location = 'view-source:'+ 'http://www.csdn.net/'">
    關(guān)閉輸入法
    <input style="ime-mode:disabled">
    自動(dòng)全選
    <input type=text name=text1 value="123" onfocus="this.select()">
    ENTER鍵可以讓光標(biāo)移到下一個(gè)輸入框
    <input onkeydown="if(event.keyCode==13)event.keyCode=9">
    文本框的默認(rèn)值
    <input type=text value="123" onfocus="alert(this.defaultValue)">
    title換行
    obj.title = "123 sdfs "
    獲得時(shí)間所代表的微秒
    var n1 = new Date("2004-10-10".replace(/-/g, "\/")).getTime()
    窗口是否關(guān)閉
    win.closed
    checkbox扁平
    <input type=checkbox style="position: absolute; clip:rect(5px 15px 15px 5px)"><br>
    獲取選中內(nèi)容
    document.selection.createRange().duplicate().text
    自動(dòng)完成功能
    <input type=text autocomplete=on>打開該功能
    <input type=text autocomplete=off>關(guān)閉該功能
    窗口最大化
    <body onload="window.resizeTo(window.screen.width - 4,window.screen.height-50);window.moveTo(-4,-4)">
    無(wú)關(guān)閉按鈕IE
    window.open("aa.htm", "meizz", "fullscreen=7");
    統(tǒng)一編碼/解碼
    alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe")))
    encodeURIComponent對(duì)":"、"/"、";" 和 "?"也編碼
    表格行指示
    <tr onmouseover="this.bgColor='#f0f0f0'" onmouseout="this.bgColor='#ffffff'">

    //各種尺寸

    s += "\r\n網(wǎng)頁(yè)可見區(qū)域?qū)挘?quot;+ document.body.clientWidth;
    s += "\r\n網(wǎng)頁(yè)可見區(qū)域高:"+ document.body.clientHeight;
    s += "\r\n網(wǎng)頁(yè)可見區(qū)域高:"+ document.body.offsetWeight +" (包括邊線的寬)";
    s += "\r\n網(wǎng)頁(yè)可見區(qū)域高:"+ document.body.offsetHeight +" (包括邊線的寬)";
    s += "\r\n網(wǎng)頁(yè)正文全文寬:"+ document.body.scrollWidth;
    s += "\r\n網(wǎng)頁(yè)正文全文高:"+ document.body.scrollHeight;
    s += "\r\n網(wǎng)頁(yè)被卷去的高:"+ document.body.scrollTop;
    s += "\r\n網(wǎng)頁(yè)被卷去的左:"+ document.body.scrollLeft;
    s += "\r\n網(wǎng)頁(yè)正文部分上:"+ window.screenTop;
    s += "\r\n網(wǎng)頁(yè)正文部分左:"+ window.screenLeft;
    s += "\r\n屏幕分辨率的高:"+ window.screen.height;
    s += "\r\n屏幕分辨率的寬:"+ window.screen.width;
    s += "\r\n屏幕可用工作區(qū)高度:"+ window.screen.availHeight;
    s += "\r\n屏幕可用工作區(qū)寬度:"+ window.screen.availWidth;
    //過(guò)濾數(shù)字

    <input type=text onkeypress="return event.keyCode>=48&&event.keyCode<=57||(this.value.indexOf('.')<0?event.keyCode==46:false)" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false">
    //特殊用途

    <input type=button value=導(dǎo)入收藏夾 onclick="window.external.ImportExportFavorites(true,'http://localhost');">
    <input type=button value=導(dǎo)出收藏夾 onclick="window.external.ImportExportFavorites(false,'http://localhost');">
    <input type=button value=整理收藏夾 onclick="window.external.ShowBrowserUI('OrganizeFavorites', null)">
    <input type=button value=語(yǔ)言設(shè)置 onclick="window.external.ShowBrowserUI('LanguageDialog', null)">
    <input type=button value=加入收藏夾 onclick="window.external.AddFavorite('http://www.google.com/', 'google')">
    <input type=button value=加入到頻道 onclick="window.external.addChannel('http://www.google.com/')">
    <input type=button value=加入到頻道 onclick="window.external.showBrowserUI('PrivacySettings',null)">
    //不緩存

    <META HTTP-EQUIV="pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
    <META HTTP-EQUIV="expires" CONTENT="0">


    //正則匹配
    匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]
    匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]
    匹配空行的正則表達(dá)式:\n[\s| ]*\r
    匹配HTML標(biāo)記的正則表達(dá)式:/<(.*)>.*<\/\1>|<(.*) \/>/
    匹配首尾空格的正則表達(dá)式:(^\s*)|(\s*$)(像vbscript那樣的trim函數(shù))
    匹配Email地址的正則表達(dá)式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    匹配網(wǎng)址URL的正則表達(dá)式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
    以下是例子:
    利用正則表達(dá)式限制網(wǎng)頁(yè)表單里的文本框輸入內(nèi)容:
    用 正則表達(dá)式限制只能輸入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
    1.用正則表達(dá)式限制只能輸入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
    2.用正則表達(dá)式限制只能輸入數(shù)字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
    3.用正則表達(dá)式限制只能輸入數(shù)字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
    //消除圖像工具欄

    <IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="false">
    or
    <head>
    <meta http-equiv="imagetoolbar" content="no">
    </head>
    //無(wú)提示關(guān)閉


    function Close()
    {
    var ua=navigator.userAgent
    var ie=navigator.appName=="Microsoft Internet Explorer"?true:false
    if(ie)
    {
    var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE "))))
    if(IEversion< 5.5)
    {
    var str = '<object id=noTipClose classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">'
    str += '<param name="Command" value="Close"></object>';
    document.body.insertAdjacentHTML("beforeEnd", str);
    document.all.noTipClose.Click();
    }
    else
    {
    window.opener =null;
    window.close();
    }
    }
    else
    {
    window.close()
    }
    }
    //取得控件得絕對(duì)位置(1)


    <script language="javascript">
    function getoffset(e)
    {
    var t=e.offsetTop;
    var l=e.offsetLeft;
    while(e=e.offsetParent)
    {
    t+=e.offsetTop;
    l+=e.offsetLeft;
    }
    var rec = new Array(1);
    rec[0] = t;
    rec[1] = l;
    return rec
    }
    </script>
    //獲得控件的絕對(duì)位置(2)

    oRect = obj.getBoundingClientRect();
    oRect.left
    oRect.
    //最小化,最大化,關(guān)閉

    <object id=min classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
    <param name="Command" value="Minimize"></object>
    <object id=max classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
    <param name="Command" value="Maximize"></object>
    <OBJECT id=close classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
    <PARAM NAME="Command" value="Close"></OBJECT>
    <input type=button value=最小化 onclick=min.Click()>
    <input type=button value=最大化 onclick=max.Click()>
    <input type=button value=關(guān)閉 onclick=close.Click()>



    //光標(biāo)停在文字最后

    <script language="javascript">
    function cc()
    {
    var e = event.srcElement;
    var r =e.createTextRange();
    r.moveStart('character',e.value.length);
    r.collapse(true);
    r.select();
    }
    </script>
    <input type=text name=text1 value="123" onfocus="cc()">
    //頁(yè)面進(jìn)入和退出的特效


    進(jìn)入頁(yè)面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
    推出頁(yè)面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)">
    這個(gè)是頁(yè)面被載入和調(diào)出時(shí)的一些特效。duration表示特效的持續(xù)時(shí)間,以秒為單位。transition表示使
    用哪種特效,取值為1-23:
    0 矩形縮小
    1 矩形擴(kuò)大
    2 圓形縮小
    3 圓形擴(kuò)大
    4 下到上刷新
    5 上到下刷新
    6 左到右刷新
    7 右到左刷新
    8 豎百葉窗
    9 橫百葉窗
    10 錯(cuò)位橫百葉窗
    11 錯(cuò)位豎百葉窗
    12 點(diǎn)擴(kuò)散
    13 左右到中間刷新
    14 中間到左右刷新
    15 中間到上下
    16 上下到中間
    17 右下到左上
    18 右上到左下
    19 左上到右下
    20 左下到右上
    21 橫條
    22 豎條
    23
    //網(wǎng)頁(yè)是否被檢索

    <meta name="ROBOTS" content="屬性值">
    其中屬性值有以下一些:
    屬性值為"all": 文件將被檢索,且頁(yè)上鏈接可被查詢;
    屬性值為"none": 文件不被檢索,而且不查詢頁(yè)上的鏈接;
    屬性值為"index": 文件將被檢索;
    屬性值為"follow": 查詢頁(yè)上的鏈接;
    屬性值為"noindex": 文件不檢索,但可被查詢鏈接;
    屬性值為"nofollow":

    //打印分頁(yè)

    <p style="page-break-after:always">page1</p>
    <p style="page-break-after:always">page2</p>

    //設(shè)置打印


    <object id="factory" style="display:none" viewastext
    classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
    codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360"
    ></object>
    <input type=button value=頁(yè)面設(shè)置 onclick="factory.printing.PageSetup()">
    <input type=button value=打印預(yù)覽 onclick="factory.printing.Preview()">

    <script language=javascript>
    function window.onload()
    {
    // -- advanced features
    factory.printing.SetMarginMeasure(2) // measure margins in inches
    factory.printing.SetPageRange(false, 1, 3) // need pages from 1 to 3
    factory.printing.printer = "HP DeskJet 870C"
    factory.printing.copies = 2
    factory.printing.collate = true
    factory.printing.paperSize = "A4"
    factory.printing.paperSource = "Manual feed"
    // -- basic features
    factory.printing.header = "居左顯示&b居中顯示&b居右顯示頁(yè)碼,第&p頁(yè)/共&P頁(yè)"
    factory.printing.footer = "(自定義頁(yè)腳)"
    factory.printing.portrait = false
    factory.printing.leftMargin = 0.75
    factory.printing.topMargin = 1.5
    factory.printing.rightMargin = 0.75
    factory.printing.bottomMargin = 1.5
    }
    function Print(frame) {
    factory.printing.Print(true, frame) // print with prompt
    }
    </script>
    <input type=button value="打印本頁(yè)" onclick="factory.printing.Print(false)">
    <input type=button value="頁(yè)面設(shè)置" onclick="factory.printing.PageSetup()">
    <input type=button value="打印預(yù)覽" onclick="factory.printing.Preview()"><br>
    <a href="http://www.meadroid.com/scriptx/docs/printdoc.htm?static" target=_blank>具體使用手冊(cè),更多信息,點(diǎn)這里</a>

    //自帶的打印預(yù)覽

    WebBrowser.ExecWB(1,1) 打開
    Web.ExecWB(2,1) 關(guān)閉現(xiàn)在所有的IE窗口,并打開一個(gè)新窗口
    Web.ExecWB(4,1) 保存網(wǎng)頁(yè)
    Web.ExecWB(6,1) 打印
    Web.ExecWB(7,1) 打印預(yù)覽
    Web.ExecWB(8,1) 打印頁(yè)面設(shè)置
    Web.ExecWB(10,1) 查看頁(yè)面屬性
    Web.ExecWB(15,1) 好像是撤銷,有待確認(rèn)
    Web.ExecWB(17,1) 全選
    Web.ExecWB(22,1) 刷新
    Web.ExecWB(45,1) 關(guān)閉窗體無(wú)提示
    <style media=print>
    .Noprint{display:none;}<!--用本樣式在打印時(shí)隱藏非打印項(xiàng)目-->
    .PageNext{page-break-after: always;}<!--控制分頁(yè)-->
    </style>
    <object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
    </object>

    <center class="Noprint" >
    <input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)>
    <input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>
    <input type=button value=頁(yè)面設(shè)置 onclick=document.all.WebBrowser.ExecWB(8,1)>
    </p>
    <p> <input type=button value=打印預(yù)覽 onclick=document.all.WebBrowser.ExecWB(7,1)>
    </center>
    //去掉打印時(shí)的頁(yè)眉頁(yè)腳


    <script language="JavaScript">
    var HKEY_Root,HKEY_Path,HKEY_Key;
    HKEY_Root="HKEY_CURRENT_USER";
    HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
    //設(shè)置網(wǎng)頁(yè)打印的頁(yè)眉頁(yè)腳為空
    function PageSetup_Null()
    {
    try
    {
    var Wsh=new ActiveXObject("WScript.Shell");
    HKEY_Key="header";
    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
    HKEY_Key="footer";
    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
    }
    catch(e){}
    }
    //設(shè)置網(wǎng)頁(yè)打印的頁(yè)眉頁(yè)腳為默認(rèn)值
    function PageSetup_Default()
    {
    try
    {
    var Wsh=new ActiveXObject("WScript.Shell");
    HKEY_Key="header";
    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b頁(yè)碼,&p/&P");
    HKEY_Key="footer";
    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d");
    }
    catch(e){}
    }
    </script>
    <input type="button" value="清空頁(yè)碼" onclick=PageSetup_Null()>
    <input type="button" value="恢復(fù)頁(yè)碼" onclick=PageSetup_Default()>
    //瀏覽器驗(yàn)證


    function checkBrowser()
    {
    this.ver=navigator.appVersion
    this.dom=document.getElementById?1:0
    this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
    this.ie4=(document.all && !this.dom)?1:0;
    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
    this.ns4=(document.layers && !this.dom)?1:0;
    this.mac=(this.ver.indexOf('Mac') > -1) ?1:0;
    this.ope=(navigator.userAgent.indexOf('Opera')>-1);
    this.ie=(this.ie6 || this.ie5 || this.ie4)
    this.ns=(this.ns4 || this.ns5)
    this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope)
    this.nbw=(!this.bw)
    return this;
    }
    //計(jì)算內(nèi)容寬和高

    <SCRIPT language="javascript">
    function test(obj)
    {
    var range = obj.createTextRange();
    alert("內(nèi)容區(qū)寬度: " + range.boundingWidth
    + "px\r\n內(nèi)容區(qū)高度: " + range.boundingHeight + "px");

    }
    </SCRIPT>
    <BODY>
    <Textarea id="txt" height="150">sdf</textarea><INPUT type="button" value="計(jì)算內(nèi)容寬度" onClick="test(txt)">
    </BODY>
    //無(wú)模式的提示框

    function modelessAlert(Msg)
    {
    window.showModelessDialog("javascript:alert(\""+escape(Msg)+"\");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
    }

    //屏蔽按鍵
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <noscript><meta http-equiv="refresh" content="0;url=about:noscript"></noscript>
    <title>屏蔽鼠標(biāo)右鍵、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格鍵</title>
    </head>
    <body>
    <script language="Javascript"><!--
    //屏蔽鼠標(biāo)右鍵、Ctrl+N、Shift+F10、F11、F5刷新、退格鍵
    //Author: meizz(梅花雨) 2002-6-18
    function document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠標(biāo)右鍵
    function window.onhelp(){return false} //屏蔽F1幫助
    function document.onkeydown()
    {
    if ((window.event.altKey)&&
    ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向鍵 ←
    (window.event.keyCode==39))) //屏蔽 Alt+ 方向鍵 →
    {
    alert("不準(zhǔn)你使用ALT+方向鍵前進(jìn)或后退網(wǎng)頁(yè)!");
    event.returnValue=false;
    }
    /* 注:這還不是真正地屏蔽 Alt+ 方向鍵,
    因?yàn)?Alt+ 方向鍵彈出警告框時(shí),按住 Alt 鍵不放,
    用鼠標(biāo)點(diǎn)掉警告框,這種屏蔽方法就失效了。以后若
    有哪位高手有真正屏蔽 Alt 鍵的方法,請(qǐng)告知。*/
    if ((event.keyCode==8) || //屏蔽退格刪除鍵
    (event.keyCode==116)|| //屏蔽 F5 刷新鍵
    (event.ctrlKey && event.keyCode==82)){ //Ctrl + R
    event.keyCode=0;
    event.returnValue=false;
    }
    if (event.keyCode==122){event.keyCode=0;event.returnValue=false;} //屏蔽F11
    if (event.ctrlKey && event.keyCode==78) event.returnValue=false; //屏蔽 Ctrl+n
    if (event.shiftKey && event.keyCode==121)event.returnValue=false; //屏蔽 shift+F10
    if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
    window.event.returnValue = false; //屏蔽 shift 加鼠標(biāo)左鍵新開一網(wǎng)頁(yè)
    if ((window.event.altKey)&&(window.event.keyCode==115)) //屏蔽Alt+F4
    {
    window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
    return false;
    }
    }
    </script>
    屏蔽鼠標(biāo)右鍵、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格鍵
    </body>
    </html>
    //屏蔽打印
    <style>
    @media print{
    * {display:none}
    }
    </style>

    //移動(dòng)的圖層,拖動(dòng)


    1.<span style='position:absolute;width:200;height:200;background:red' onmousedown=MouseDown(this) onmousemove=MouseMove() onmouseup=MouseUp()>meizz</span>
    <script language=javascript>
    var Obj;
    function MouseDown(obj)
    {
    Obj=obj;
    Obj.setCapture();
    Obj.l=event.x-Obj.style.pixelLeft;
    Obj.t=event.y-Obj.style.pixelTop;
    }
    function MouseMove()
    {
    if(Obj!=null)
    {
    Obj.style.left = event.x-Obj.l;
    Obj.style.top = event.y-Obj.t;
    }
    }
    function MouseUp()
    {
    if(Obj!=null)
    {
    Obj.releaseCapture();
    Obj=null;
    }
    }
    </script>
    2.
    <div id="myDiv" src="logo.gif" ondrag="doDrag();" onmouseover="this.style.cursor='hand'" style="position:absolute;left=100;top=100;" onmousedown="doMouseDown();">
    <a href="#" onclick="return false"><h1>wlecome</h1></a>
    </div>
    <script language="JavaScript" type="text/javascript">
    var orgMouseX;
    var orgMouseY;
    var orgObjX;
    var orgObjY;
    function doDrag()
    {
    var myObject=document.all.myDiv;

    var x=event.clientX;
    var y=event.clientY;
    myObject.style.left=x-(orgMouseX-orgObjX);
    myObject.style.top=y-(orgMouseY-orgObjY);

    }
    function doMouseDown()
    {
    orgMouseX=event.clientX;
    orgMouseY=event.clientY;
    orgObjX=parseInt(document.all.myDiv.style.left);
    orgObjY=parseInt(document.all.myDiv.style.top);
    }

    </script>

    //文檔狀態(tài)改變


    <iframe src="a.html" id="f" name="f" scrolling="no" frameborder=0 marginwidth=0 marginheight=0></iframe>
    <script>
    var doc=window.frames["f"].document;
    function s(){
    if (doc.readyState=="complete"){
    document.all.f.style.height=doc.body.scrollHeight
    document.all.f.style.width=doc.body.scrollWidth
    }
    }
    doc.onreadystatechange=s
    </script>

    //刷新后不變的文本框

    <HTML>
    <HEAD>
    <META NAME="save" CONTENT="history">
    <STYLE>
    .sHistory {behavior:url(#default#savehistory);}
    </STYLE>
    </HEAD>
    <BODY>
    <INPUT class=sHistory type=text id=oPersistInput>
    </BODY>
    </HTML>
    //訪問(wèn)剪貼板

    (1)拖拽訪問(wèn)
    event.dataTransfer.setData("URL", oImage.src);
    sImageURL = event.dataTransfer.getData("URL")
    (2)普通訪問(wèn)
    window.clipboardData.setData("Text",oSource.innerText);
    window.clipboardData.getData("Text");
    //操作COOKIE


    function SetCookie(sName, sValue)
    {
    document.cookie = sName + "=" + escape(sValue) + "; ";
    }
    function GetCookie(sName)
    {
    var aCookie = document.cookie.split("; ");
    for (var i=0; i < aCookie.length; i++)
    {

    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0])
    return unescape(aCrumb[1]);
    }

    }
    function DelCookie(sName)
    {
    document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
    }
    //setTimeout增加參數(shù)

    <script>
    var _st = window.setTimeout;
    window.setTimeout = function(fRef, mDelay) {
    if(typeof fRef == 'function'){
    var argu = Array.prototype.slice.call(arguments,2);
    var f = (function(){ fRef.apply(null, argu); });
    return _st(f, mDelay);
    }
    return _st(fRef,mDelay);
    }
    function test(x){
    alert(x);
    }
    window.setTimeout(test,1000,'fason');
    </script>

    //自定義的apply,call

    Function.prototype.apply = function (obj, argu) {
    if (obj) obj.constructor.prototype._caller = this;
    var argus = new Array();
    for (var i=0;i<argu.length;i++)
    argus[i] = "argu[" + i + "]";
    var r;
    eval("r = " + (obj ? ("obj._caller(" + argus.join(",") + ");") : ("this(" + argus.join(",") + ");")));
    return r;
    };
    Function.prototype.call = function (obj) {
    var argu = new Array();
    for (var i=1;i<arguments.length;i++)
    argu[i-1] = arguments[i];
    return this.apply(obj, argu);
    };

    //下載文件

    function DownURL(strRemoteURL,strLocalURL)
    {
    try
    {
    var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP");
    xmlHTTP.open("Get",strRemoteURL,false);
    xmlHTTP.send();
    var adodbStream=new ActiveXObject("ADODB.Stream");
    adodbStream.Type=1;//1=adTypeBinary
    adodbStream.Open();
    adodbStream.write(xmlHTTP.responseBody);
    adodbStream.SaveToFile(strLocalURL,2);
    adodbStream.Close();
    adodbStream=null;
    xmlHTTP=null;

    }
    catch(e)
    {
    window.confirm("下載URL出錯(cuò)!");
    }
    //window.confirm("下載完成.");
    }

    //檢驗(yàn)連接是否有效

    function getXML(URL)
    {
    var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
    xmlhttp.Open("GET",URL, false);
    try
    {
    xmlhttp.Send();
    }
    catch(e){}
    finally
    {
    var result = xmlhttp.responseText;
    if(result)
    {
    if(xmlhttp.Status==200)
    {
    return(true);
    }
    else
    {
    return(false);
    }
    }
    else
    {
    return(false);
    }
    }
    }
    //POST代替FORM

    <SCRIPT language="VBScript">
    Function URLEncoding(vstrIn)
    strReturn = ""
    For i = 1 To Len(vstrIn)
    ThisChr = Mid(vStrIn,i,1)
    If Abs(Asc(ThisChr)) < &HFF Then
    strReturn = strReturn & ThisChr
    Else
    innerCode = Asc(ThisChr)
    If innerCode < 0 Then
    innerCode = innerCode + &H10000
    End If
    Hight8 = (innerCode And &HFF00)\ &HFF
    Low8 = innerCode And &HFF
    strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
    End If
    Next
    URLEncoding = strReturn
    End Function
    Function bytes2BSTR(vIn)
    strReturn = ""
    For i = 1 To LenB(vIn)
    ThisCharCode = AscB(MidB(vIn,i,1))
    If ThisCharCode < &H80 Then
    strReturn = strReturn & Chr(ThisCharCode)
    Else
    NextCharCode = AscB(MidB(vIn,i+1,1))
    strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
    i = i + 1
    End If
    Next
    bytes2BSTR = strReturn
    End Function
    dim strA,oReq
    strA = URLEncoding("submit1=Submit&text1=中文")
    set oReq = CreateObject("MSXML2.XMLHTTP")
    oReq.open "POST","http://ServerName/VDir/TstResult.asp",false
    oReq.setRequestHeader "Content-Length",Len(strA)
    oReq.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
    oReq.send strA
    msgbox bytes2BSTR(oReq.responseBody)
    </SCRIPT>
    //readyState是xmlhttp返回?cái)?shù)據(jù)的進(jìn)度,0=載入中,1=未初始化,2=已載入,3=運(yùn)行中,4=完成

    //組件是否安裝
    isComponentInstalled("{6B053A4B-A7EC-4D3D-4567-B8FF8A1A5739}", "componentID"))

    //檢查網(wǎng)頁(yè)是否存在


    function CheckURL(URL)
    {
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.Open("GET",URL, false);
    try
    {
    xmlhttp.Send();
    var result = xmlhttp.status;
    }
    catch(e) {return(false); }
    if(result==200)
    {
    return true;
    }
    xmlhttp = null;
    return false;
    }
    //連接數(shù)據(jù)庫(kù)


    <script language="javascript">
    //用 JavaScript 寫服務(wù)器端連接數(shù)據(jù)庫(kù)的代碼示例
    var conn = new ActiveXObject("ADODB.Connection");
    conn.Open("Provider=SQLOLEDB.1; Data Source=localhost; User ID=sa; "
    +"Password=; Initial Catalog=pubs");
    var rs = new ActiveXObject("ADODB.Recordset");
    var sql="select * from authors";
    rs.open(sql, conn);
    shtml = "<table width='100%' border=1>";
    shtml +="<tr bgcolor='#f4f4f4'><td>au_id</td><td>au_lname</td><td>au_fname</td><td>phone</td><td>address</td><td> city</td><td>state</td><td>zip</td></tr>";
    while(!rs.EOF)
    {
    shtml += "<tr><td>" + rs("au_id") + "</td><td>" + rs("au_lname") + "</td><td>" + rs("au_fname") + "</td><td>" + rs("phone") + "</td><td>" + rs("address") + "</td><td>" + rs("city") + "</td><td>" + rs("state") + "</td><td>" + rs("zip") + "</td></tr>";
    rs.moveNext;
    }
    shtml += "</table>";
    document.write(shtml);
    rs.close();
    rs = null;
    conn.close();
    conn = null;
    </script>
    //使用數(shù)據(jù)島


    <html>
    <body>
    srno:<input type=text datasrc=#xmldate DataFLD=srno size="76"><BR>
    times:<input type=text datasrc=#xmldate DataFLD=times size="76"><BR>
    <input id="first" TYPE=button value="<< 第一條記錄" onclick="xmldate.recordset.moveFirst()">
    <input id="prev" TYPE=button value="<上一條記錄" onclick="xmldate.recordset.movePrevious()">
    <input id="next" TYPE=button value="下一條記錄>" onclick="xmldate.recordset.moveNext()">
    <input id="last" TYPE=button value="最后一條記錄>>" onclick="xmldate.recordset.moveLast()">
    <input id="Add" TYPE=button value="添加新記錄" onclick="xmldate.recordset.addNew()">

    <XML ID="xmldate">
    <infolist>
    <info ><srno>20041025-01</srno><times>null</times></info>
    <info ><srno>20041101-09</srno><times>2004年10月1日2點(diǎn)22分0秒</times></info>
    </infolist>
    </XML>
    </body>
    </html>
    //獲得參數(shù)

    <body>
    <a href="javascript:location.href=location.href + '?a=1&b=2'">search</a>
    <script language="JavaScript">
    <!--
    var a = location.search.substr(1);
    if(a.length>0)
    {
    var re = /([^&]*?)\=([^&]*)/g
    var s = a.match(re);
    for(var i= 0;i<s.length;i++)
    {
    alert(s[i]);
    alert(s[i].split("=")[1]);
    }
    }
    //-->
    </script>
    </body>
    //可編輯SELECT

    <input type=text name=re_name style="width:100px;height:21px;font-size:10pt;"><span style="width:18px;border:0px solid red;"><select name="r00" style="margin-left:-100px;width:118px; background-color:#FFEEEE;" onChange="document.all.re_name.value=this.value;">
    <option value="1">11111111<option>
    <option value="2">222222</option>
    <option value="3">333333</option>
    </select>
    </span>
    posted @ 2008-08-26 22:06 豬 閱讀(117) | 評(píng)論 (0)編輯 收藏

    ===========ValueObject.cs============

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace psms.util
    {
        class ValueObject
        {
            private string value;
            private string text;

            public ValueObject(string v, string t)
            {
                this.value = v;
                this.text = t;
            }

            public string Value
            {
                get { return this.value;}
            }
            public string Text
            {
                get { return this.text; }
            }

        }
    }

    ===============綁定數(shù)據(jù)===============

    this.combIn_Acc.Items.Add(new util.ValueObject("", ""));
    this.combIn_Acc.Items.Add(new util.ValueObject("0","未做帳"));
    this.combIn_Acc.Items.Add(new util.ValueObject("1", "已做帳"));
               
    this.combIn_Acc.ValueMember = "value";
    this.combIn_Acc.DisplayMember = "text";
    this.combIn_Acc.SelectedIndex = 0;


    ================取值==================


    if (this.combIn_Acc.SelectedIndex >= 0)
    {
       if (((util.ValueObject)this.combIn_Acc.SelectedItem).Value.ToString() != "")
       {
           condition.Append(" and in_acc = ").Append(((util.ValueObject)this.combIn_Acc.SelectedItem).Value.ToString()).Append(" ");
       }
    }


    不知道為什么this.combIn_Acc.SelectedValue總是報(bào)空指針異常,想不明白,換了上面的取值方法終于可行了
    posted @ 2008-08-26 22:06 豬 閱讀(920) | 評(píng)論 (2)編輯 收藏
    conn = getConnection();
    conn.setAutoCommit(false);
    conn.setAutoCommit(false);
    PreparedStatement ps = conn.prepareStatement("INSERT INTO user(id,name) VALUES(?, ?)");     
    for (int i = 0; i < 10000; i++) {
        ps.setInt(1,i);
        ps.setString(2,"name_"+String.valueOf(i));
        ps.addBatch();
        //ps.clearParameters(); 這句話報(bào)空指針異常,不知為什么
    }
    ps.executeBatch();
    conn.commit();
    posted @ 2008-08-26 22:06 豬 閱讀(146) | 評(píng)論 (0)編輯 收藏
    數(shù)據(jù)庫(kù)的使用過(guò)程中由于程序方面的問(wèn)題有時(shí)候會(huì)碰到重復(fù)數(shù)據(jù),重復(fù)數(shù)據(jù)導(dǎo)致了數(shù)據(jù)庫(kù)部分設(shè)置不能正確設(shè)置……
    方法一

    declare @max integer,@id integer
    declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1
    open cur_rows
    fetch cur_rows into @id,@max
    while fetch_status=0
    begin
    select @max = @max -1
    set rowcount @max
    delete from 表名 where 主字段 = @id
    fetch cur_rows into @id,@max
    end
    close cur_rows
    set rowcount 0

    方法二

    有兩個(gè)意義上的重復(fù)記錄,一是完全重復(fù)的記錄,也即所有字段均重復(fù)的記錄,二是部分關(guān)鍵字段重復(fù)的記錄,比如Name字段重復(fù),而其他字段不一定重復(fù)或都重復(fù)可以忽略。

    1、對(duì)于第一種重復(fù),比較容易解決,使用

    select distinct * from tableName


    就可以得到無(wú)重復(fù)記錄的結(jié)果集。
    如果該表需要?jiǎng)h除重復(fù)的記錄(重復(fù)記錄保留1條),可以按以下方法刪除

    select distinct * into #Tmp from tableName
    drop table tableName
    select * into tableName from #Tmp
    drop table #Tmp

    發(fā)生這種重復(fù)的原因是表設(shè)計(jì)不周產(chǎn)生的,增加唯一索引列即可解決。

    2、這類重復(fù)問(wèn)題通常要求保留重復(fù)記錄中的第一條記錄,操作方法如下
    假設(shè)有重復(fù)的字段為Name,Address,要求得到這兩個(gè)字段唯一的結(jié)果集

    select identity(int,1,1) as autoID, * into #Tmp from tableName
    select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
    select * from #Tmp where autoID in(select autoID from #tmp2)

    最后一個(gè)select即得到了Name,Address不重復(fù)的結(jié)果集(但多了一個(gè)autoID字段,實(shí)際寫時(shí)可以寫在select子句中省去此列)
    posted @ 2008-08-26 22:06 豬 閱讀(156) | 評(píng)論 (0)編輯 收藏
    我同時(shí)打開了多個(gè)文件,我編輯哪個(gè)文件,在解決方案管理器中就選中哪個(gè)文件
    我記得可以的,忘了在哪設(shè)了
    原來(lái)在這 ,呵呵



    posted @ 2008-08-26 22:06 豬 閱讀(124) | 評(píng)論 (0)編輯 收藏
    DECLARE   @T_SQL   varchar(8000)
    set @T_SQL=''
    select @T_SQL=@T_SQL + name +'=ltrim(rtrim('+ name + ')),' from syscolumns where id=object_id('vipinfo')   and   name   <>   'id'
    set   @T_SQL   =   'update   vipinfo   set   '   +   left(@T_SQL,len(@T_SQL)-1)
    exec   (@T_SQL)
    posted @ 2008-08-26 22:06 豬 閱讀(547) | 評(píng)論 (0)編輯 收藏
            #region 執(zhí)行查詢語(yǔ)句返回影響行數(shù)
            public static int ExecuteNonQuery(string str_cmd,out string str_error)
            {
                int i=0;
                str_error=string.Empty;
                SqlConnection conn=CreateConn();
                SqlCommand cmd=new SqlCommand(str_cmd,conn);
                try
                {
                    conn.Open();
                    i=cmd.ExecuteNonQuery();
                }
                catch(Exception ex)
                {
                    str_error=ex.Message;
                }
                finally
                {
                    conn.Close();
                }
                return i;
            }
            #endregion
            #region 返回第一行第一列
            public static string ExecuteScalar(string str_cmd,out string str_error)
            {
                string str_value=string.Empty;
                str_error=string.Empty;
                SqlConnection conn=CreateConn();
                SqlCommand cmd=new SqlCommand(str_cmd,conn);
                try
                {
                    conn.Open();
                    str_value=cmd.ExecuteScalar().ToString();
                }
                catch(Exception ex)
                {
                    str_error=ex.Message;
                }
                finally
                {
                    conn.Close();
                }
                return str_value;
            }
            #endregion
            #region 返回datatbale from datareader
            public static DataTable ExecuteReader(string str_cmd,out string str_error)
            {
                DataTable dt=new DataTable();
                SqlDataReader dr=null;
                 str_error=string.Empty;
                SqlConnection conn=CreateConn();
                SqlCommand cmd=new SqlCommand(str_cmd,conn);
                try
                {
                    conn.Open();
                    dr=cmd.ExecuteReader();
                    dt=DataReaderToTable(dr);
                }
                catch(Exception ex)
                {
                    str_error=ex.Message;
                }
                finally
                {
                    conn.Close();
                }
                return dt;
             }
            #region 循環(huán)SqlDataReader填入Table
            private static DataTable DataReaderToTable(SqlDataReader dr)
            {
                DataTable dt=new DataTable();
                int count=dr.FieldCount;
                int index=1;
                if(count>0)
                {
                    for(int i=0;i<count;i++)
                    {
                        dt.Columns.Add(dr.GetName(i),dr.GetFieldType(i));
                    }
                    dt.Columns.Add("id");//編號(hào)
                    dt.BeginLoadData();
                    while(dr.Read())
                    {
                        object[] objectRow=new object[count+1];
                        for(int i=0;i<count;i++)
                        {
                       
                            objectRow[i]=dr[dr.GetName(i)];
                        }
                        objectRow[count]=index;//編號(hào)
                        dt.LoadDataRow(objectRow,true);
                        index++;
                    }
                    dt.EndLoadData();
                }
                return dt;

            }
            #endregion
            public static SqlConnection CreateConn()
            {
                //string str_conn="server=.;database=bidding;user id=sa;pwd=jhc;";
                SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]);
                return conn;
            }
    posted @ 2008-08-26 22:06 豬 閱讀(239) | 評(píng)論 (0)編輯 收藏
    僅列出標(biāo)題
    共27頁(yè): First 上一頁(yè) 7 8 9 10 11 12 13 14 15 下一頁(yè) Last 

    公告

    希望有一天

    我能用鼠標(biāo)雙擊我的錢包

    然后選中一張100元

    按住“ctrl+c”

    接著不停的“ctrl+v”

    嘻嘻~~~笑醒~~~



    導(dǎo)航

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類(102)

    隨筆檔案(398)

    文章分類

    文章檔案(10)

    有趣網(wǎng)絡(luò)

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产福利在线观看永久免费| 亚洲国产成人久久精品软件| 亚洲乱码卡一卡二卡三| 亚洲一区二区三区播放在线| 亚洲精品日韩一区二区小说| jzzjzz免费观看大片免费| 久久久久久AV无码免费网站| 69式国产真人免费视频| 国产精品久久香蕉免费播放| 国产亚洲精品无码专区| 99久久亚洲综合精品成人网| 久久乐国产综合亚洲精品| 一级毛片免费一级直接观看| 亚洲欧洲免费视频| 嫩草影院免费观看| 中文字幕亚洲日韩无线码| 久久精品国产亚洲av日韩| 亚洲国产成人久久精品软件| 中国黄色免费网站| 亚洲免费网站观看视频| 亚洲精品无码专区2| 亚洲色欲www综合网| 精品久久久久久亚洲综合网| 中文字幕久精品免费视频| 一个人看www在线高清免费看| 亚洲五月午夜免费在线视频| 老司机亚洲精品影院无码| 在线播放亚洲精品| 亚洲国产精品人人做人人爱| 久久精品视频亚洲| 亚洲av无码专区青青草原| 亚洲依依成人亚洲社区| 亚洲免费无码在线| 国产成人免费网站| 伊人久久大香线蕉亚洲五月天 | 免费观看四虎精品国产永久| 亚洲AV无码久久精品狠狠爱浪潮| 亚洲日韩精品A∨片无码加勒比| 拍拍拍无挡免费视频网站| 毛片a级毛片免费播放下载| 成人奭片免费观看|