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) | 評論 (0)編輯 收藏

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

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

               這涉及到了兩個應(yīng)用,再次點(diǎn)擊查詢按鈕,Ie就會報“沒有權(quán)限”錯誤。

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

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

              1、在涉及到跨域訪問的頁面中加入

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

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

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

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

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

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

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

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

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

          參考文章

          posted @ 2008-08-26 22:06 豬 閱讀(5589) | 評論 (1)編輯 收藏
          posted @ 2008-08-26 22:06 豬 閱讀(86) | 評論 (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 豬 閱讀(625) | 評論 (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) | 評論 (0)編輯 收藏
          又到年了,google了張年的圖片,貼上,添點(diǎn)年味,添點(diǎn)喜慶,祝所有~~元旦快樂
          posted @ 2008-08-26 22:06 豬 閱讀(103) | 評論 (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) | 評論 (0)編輯 收藏
          要回答這個問題不能一概而論,有時候使用Vector比較好;有時是ArrayList,有時候這兩個都不是最好的選擇。你別指望能夠獲得一個簡單肯定答案,因?yàn)檫@要看你用它們干什么。下面有4個要考慮的因素:
          l API
          l 同步處理
          l 數(shù)據(jù)增長性
          l 使用模式
          下面針對這4個方面進(jìn)行一一探討
          API
          在由Ken Arnold等編著的《Java Programming Language》(Addison-Wesley, June 2000)一書中有這樣的描述,Vector類似于ArrayList.。所有從API的角度來看這兩個類非常相似。但他們之間也還是有一些主要的區(qū)別的。

          [b]同步性
          Vector是同步的。這個類中的一些方法保證了Vector中的對象是線程安全的。而ArrayList則是異步的,因此ArrayList中的對象并不是線程安全的。因?yàn)橥降囊髸绊憟?zhí)行的效率,所以如果你不需要線程安全的集合那么使用ArrayList是一個很好的選擇,這樣可以避免由于同步帶來的不必要的性能開銷。
          數(shù)據(jù)增長
          從內(nèi)部實(shí)現(xiàn)機(jī)制來講ArrayList和Vector都是使用數(shù)組(Array)來控制集合中的對象。當(dāng)你向這兩種類型中增加元素的時候,如果元素的數(shù)目超出了內(nèi)部數(shù)組目前的長度它們都需要擴(kuò)展內(nèi)部數(shù)組的長度, Vector缺省情況下自動增長原來一倍的數(shù)組長度,ArrayList是原來的50%,所以最后你獲得的這個集合所占的空間總是比你實(shí)際需要的要大。所以如果你要在集合中保存大量的數(shù)據(jù)那么使用Vector有一些優(yōu)勢,因?yàn)槟憧梢酝ㄟ^設(shè)置集合的初始化大小來避免不必要的資源開銷。
          使用模式
          在ArrayList 和Vector中,從一個指定的位置(通過索引)查找數(shù)據(jù)或是在集合的末尾增加、移除一個元素所花費(fèi)的時間是一樣的,這個時間我們用O(1)表示。但是,如果在集合的其他位置增加或移除元素那么花費(fèi)的時間會呈線形增長:O(n-i),其中n代表集合中元素的個數(shù),i代表元素增加或移除元素的索引位置。為什么會這樣呢?以為在進(jìn)行上述操作的時候集合中第i和第i個元素之后的所有元素都要執(zhí)行位移的操作。這一切意味著什么呢?
          這意味著,你只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是其他操作,你最好選擇其他的集合操作類。比如, LinkList集合類在增加或移除集合中任何位置的元素所花費(fèi)的時間都是一樣的—O(1),但它在索引一個元素的使用缺比較慢-O(i),其中i是索引的位置.使用ArrayList也很容易,因?yàn)槟憧梢院唵蔚氖褂盟饕齺泶鎰?chuàng)建iterator對象的操作。LinkList也會為每個插入的元素創(chuàng)建對象,所有你要明白它也會帶來額外的開銷。
          最后,在《Practical Java》一書中Peter Haggar建議使用一個簡單的數(shù)組(Array)來代替Vector或ArrayList。尤其是對于執(zhí)行效率要求高的程序更應(yīng)如此。因?yàn)槭褂脭?shù)組 (Array)避免了同步、額外的方法調(diào)用和不必要的重新分配空間的操作。
          posted @ 2008-08-26 22:06 豬 閱讀(103) | 評論 (0)編輯 收藏
          Javascript技巧參考
          事件源對象
          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
          窗體活動元素
          document.activeElement
          綁定事件
          document.captureEvents(Event.KEYDOWN);
          訪問窗體元素
          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[索引]
          對象綁定事件
          document.all.xxx.detachEvent('onclick',a);
          插件數(shù)目
          navigator.plugins
          取變量類型
          typeof($js_libpath) == "undefined"
          下拉框
          下拉框.options[索引]
          下拉框.options.length
          查找對象
          document.getElementsByName("r1");
          document.getElementById(id);
          定時
          timer=setInterval('scrollwindow()',delay);
          clearInterval(timer);
          UNCODE編碼
          escape() ,unescape
          父對象
          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"
          自動刷新
          <meta HTTP-EQUIV="refresh" CONTENT="8;URL=http://c98.yeah.net">
          簡單郵件
          <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)頁傳遞參數(shù)
          location.search();
          可編輯
          obj.contenteditable=true
          執(zhí)行菜單命令
          obj.execCommand
          雙字節(jié)字符
          /[^\x00-\xff]/
          漢字
          /[\u4e00-\u9fa5]/
          讓英文字符串超出表格寬度自動換行
          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
          第一個style標(biāo)簽
          document.styleSheets[0]
          style標(biāo)簽里的第一個樣式
          document.styleSheets[0].rules[0]
          防止點(diǎn)擊空鏈接時,頁面往往重置到頁首端。
          <a href="javascript:function()">word</a>
          上一網(wǎng)頁源
          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)頁源代碼 onclick="window.location = 'view-source:'+ 'http://www.csdn.net/'">
          關(guān)閉輸入法
          <input style="ime-mode:disabled">
          自動全選
          <input type=text name=text1 value="123" onfocus="this.select()">
          ENTER鍵可以讓光標(biāo)移到下一個輸入框
          <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 "
          獲得時間所代表的微秒
          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
          自動完成功能
          <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)">
          無關(guān)閉按鈕IE
          window.open("aa.htm", "meizz", "fullscreen=7");
          統(tǒng)一編碼/解碼
          alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe")))
          encodeURIComponent對":"、"/"、";" 和 "?"也編碼
          表格行指示
          <tr onmouseover="this.bgColor='#f0f0f0'" onmouseout="this.bgColor='#ffffff'">

          //各種尺寸

          s += "\r\n網(wǎng)頁可見區(qū)域?qū)挘?quot;+ document.body.clientWidth;
          s += "\r\n網(wǎng)頁可見區(qū)域高:"+ document.body.clientHeight;
          s += "\r\n網(wǎng)頁可見區(qū)域高:"+ document.body.offsetWeight +" (包括邊線的寬)";
          s += "\r\n網(wǎng)頁可見區(qū)域高:"+ document.body.offsetHeight +" (包括邊線的寬)";
          s += "\r\n網(wǎng)頁正文全文寬:"+ document.body.scrollWidth;
          s += "\r\n網(wǎng)頁正文全文高:"+ document.body.scrollHeight;
          s += "\r\n網(wǎng)頁被卷去的高:"+ document.body.scrollTop;
          s += "\r\n網(wǎng)頁被卷去的左:"+ document.body.scrollLeft;
          s += "\r\n網(wǎng)頁正文部分上:"+ window.screenTop;
          s += "\r\n網(wǎng)頁正文部分左:"+ 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;
          //過濾數(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=語言設(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)頁表單里的文本框輸入內(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>
          //無提示關(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()
          }
          }
          //取得控件得絕對位置(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>
          //獲得控件的絕對位置(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()">
          //頁面進(jìn)入和退出的特效


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

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

          //打印分頁

          <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=頁面設(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居右顯示頁碼,第&p頁/共&P頁"
          factory.printing.footer = "(自定義頁腳)"
          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="打印本頁" onclick="factory.printing.Print(false)">
          <input type=button value="頁面設(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>具體使用手冊,更多信息,點(diǎn)這里</a>

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

          WebBrowser.ExecWB(1,1) 打開
          Web.ExecWB(2,1) 關(guān)閉現(xiàn)在所有的IE窗口,并打開一個新窗口
          Web.ExecWB(4,1) 保存網(wǎng)頁
          Web.ExecWB(6,1) 打印
          Web.ExecWB(7,1) 打印預(yù)覽
          Web.ExecWB(8,1) 打印頁面設(shè)置
          Web.ExecWB(10,1) 查看頁面屬性
          Web.ExecWB(15,1) 好像是撤銷,有待確認(rèn)
          Web.ExecWB(17,1) 全選
          Web.ExecWB(22,1) 刷新
          Web.ExecWB(45,1) 關(guān)閉窗體無提示
          <style media=print>
          .Noprint{display:none;}<!--用本樣式在打印時隱藏非打印項(xiàng)目-->
          .PageNext{page-break-after: always;}<!--控制分頁-->
          </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=頁面設(shè)置 onclick=document.all.WebBrowser.ExecWB(8,1)>
          </p>
          <p> <input type=button value=打印預(yù)覽 onclick=document.all.WebBrowser.ExecWB(7,1)>
          </center>
          //去掉打印時的頁眉頁腳


          <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)頁打印的頁眉頁腳為空
          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)頁打印的頁眉頁腳為默認(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頁碼,&p/&P");
          HKEY_Key="footer";
          Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d");
          }
          catch(e){}
          }
          </script>
          <input type="button" value="清空頁碼" onclick=PageSetup_Null()>
          <input type="button" value="恢復(fù)頁碼" 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;
          }
          //計算內(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="計算內(nèi)容寬度" onClick="test(txt)">
          </BODY>
          //無模式的提示框

          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)頁!");
          event.returnValue=false;
          }
          /* 注:這還不是真正地屏蔽 Alt+ 方向鍵,
          因?yàn)?Alt+ 方向鍵彈出警告框時,按住 Alt 鍵不放,
          用鼠標(biāo)點(diǎn)掉警告框,這種屏蔽方法就失效了。以后若
          有哪位高手有真正屏蔽 Alt 鍵的方法,請告知。*/
          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)頁
          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>

          //移動的圖層,拖動


          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>
          //訪問剪貼板

          (1)拖拽訪問
          event.dataTransfer.setData("URL", oImage.src);
          sImageURL = event.dataTransfer.getData("URL")
          (2)普通訪問
          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出錯!");
          }
          //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返回數(shù)據(jù)的進(jìn)度,0=載入中,1=未初始化,2=已載入,3=運(yùn)行中,4=完成

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

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


          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ù)庫


          <script language="javascript">
          //用 JavaScript 寫服務(wù)器端連接數(shù)據(jù)庫的代碼示例
          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) | 評論 (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總是報空指針異常,想不明白,換了上面的取值方法終于可行了
          posted @ 2008-08-26 22:06 豬 閱讀(918) | 評論 (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(); 這句話報空指針異常,不知為什么
          }
          ps.executeBatch();
          conn.commit();
          posted @ 2008-08-26 22:06 豬 閱讀(146) | 評論 (0)編輯 收藏
          數(shù)據(jù)庫的使用過程中由于程序方面的問題有時候會碰到重復(fù)數(shù)據(jù),重復(fù)數(shù)據(jù)導(dǎo)致了數(shù)據(jù)庫部分設(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

          方法二

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

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

          select distinct * from tableName


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

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

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

          2、這類重復(fù)問題通常要求保留重復(fù)記錄中的第一條記錄,操作方法如下
          假設(shè)有重復(fù)的字段為Name,Address,要求得到這兩個字段唯一的結(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)

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



          posted @ 2008-08-26 22:06 豬 閱讀(123) | 評論 (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) | 評論 (0)編輯 收藏
                  #region 執(zhí)行查詢語句返回影響行數(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");//編號
                          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;//編號
                              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) | 評論 (0)編輯 收藏
          僅列出標(biāo)題
          共27頁: First 上一頁 7 8 9 10 11 12 13 14 15 下一頁 Last 

          公告

          希望有一天

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

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導(dǎo)航

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

          統(tǒng)計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

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

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 寻甸| 司法| 依兰县| 海城市| 左贡县| 衡阳县| 东乡族自治县| 泰和县| 鄄城县| 连城县| 肇东市| 明星| 巴塘县| 安岳县| 鄄城县| 呼和浩特市| 集贤县| 德化县| 承德市| 简阳市| 曲阳县| 广丰县| 葵青区| 邹平县| 白朗县| 永嘉县| 江永县| 罗甸县| 龙门县| 彰化市| 五原县| 临沂市| 灵宝市| 万州区| 绥阳县| 麻江县| 兖州市| 雷山县| 招远市| 花莲市| 丰都县|