2010年2月8日 星期一

ASP.NET VB 如何讀取文字檔

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show(GetTextString)
End Sub
    Private Function GetTextString() As String
Dim value As String = ""
Dim a As String = ""
Dim MySF As StreamReader = New StreamReader("c:\1.txt", System.Text.Encoding.Default)

'value = MySF.ReadToEnd() '讀取全部會包含換行符號
Do While Not MySF.EndOfStream
value &= MySF.ReadLine '讀取單行
Loop
Return value
End Function

ASP.NET VB 如何用.NET發mail

'這裡需要一個Button

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim newMail As New System.Net.Mail.MailMessage
Dim ToAddress(,) As String = {{"to@yahoo.com.tw", "to"}, {"to@msa.hinet.net", "to"}}
Dim CCAddress(,) As String = {{"cc@yahoo.com.tw", "cc"}, {"cc@msa.hinet.net", "cc"}}
Dim BccAddress(,) As String = {{"bcc@yahoo.com.tw", "bcc"}, {"bcc@msa.hinet.net", "bcc"}}
Dim AttachFile() As String = {"C:\temp\123.xls", "C:\temp\456.xls"}
Dim smtpMail As New System.Net.Mail.SmtpClient

With newMail
.From = New System.Net.Mail.MailAddress("from@msa.hinet.net", "from") '寄件者
.Body = "Hello Every Body!!" '內文
.Subject = "測試資料!!" '主旨
.BodyEncoding = System.Text.Encoding.GetEncoding("BIG5") '編碼方式

For i As Int32 = 0 To ToAddress.GetUpperBound(1) '收信人
.To.Add(New System.Net.Mail.MailAddress(ToAddress(i, 0), ToAddress(i, 1)))
Next
For i As Int32 = 0 To CCAddress.GetUpperBound(1) '副本
.CC.Add(New System.Net.Mail.MailAddress(CCAddress(i, 0), CCAddress(i, 1)))
Next
For i As Int32 = 0 To BccAddress.GetUpperBound(1) '密件副本
.Bcc.Add(New System.Net.Mail.MailAddress(BccAddress(i, 0), BccAddress(i, 1)))
Next
For i As Int32 = 0 To BccAddress.GetUpperBound(1) '夾檔
.Attachments.Add(New System.Net.Mail.Attachment(AttachFile(i)))
Next
.IsBodyHtml = True '是否為HTML格式
.Priority = Net.Mail.MailPriority.Normal '優先權
End With
Try
smtpMail.Host = "msa.hinet.net"
smtpMail.SendAsync(newMail, "TEST")
Catch ex As Exception
MsgBox(ex.InnerException)
End Try
End Sub

C# 檢查是否為數字 或 字串

可以用在 Textbox 上來檢查 使用者 輸入的時候 是 純文字 或 純數字
   public bool CheckIsNumber(string s)
{
char[] tmp = s.ToCharArray();
for (int i = 0; i < tmp.Length; i++)
{
if ((int)tmp[i] < 48 || (int)tmp[i] > 57)
return false;

}
return true;
}
                 實做:
if (CheckIsNumber(textBox2.Text) == true)
{
MessageBox.Show("你輸入的是 純數字");
}
else
{
MessageBox.Show("請輸入 數字!!");
}
轉自http://kuomingwang.blogspot.com/2009/03/c.html

2010年2月7日 星期日

如何讓IE7中(window.close)關閉瀏覽器時不出現詢問

window.opener=null;
window.close();
但是這個在IE7卻無效了,要改成用以下的方式

window.open('','_self','');
window.close();

所以在ASP.NET中,既可以這樣做:

ASP.NET VB
Page.ClientScript.RegisterStartupScript(Me.GetType, "Test Close Window", "<script>window.open('','_self','');window.close();</script>")

ASP.NET C#
ScriptManager.RegisterStartupScript(this, this.GetType(), "ALERT", "alert('Test Close Window');window.open('','_self','');window.close();", true);

參考網頁http://www.dotblogs.com.tw/topcat/archive/2008/03/31/2365.aspx

MSSQL 跨資料庫主機查詢

連結SQL資料庫
select * from OPENDATASOURCE('SQLOLEDB','Data Source=sa;User ID=sa;Password=')...xxx

完整語法 SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data Source=主機位置;User ID=帳號;Password=密碼').資料庫名稱.DBO.Table名稱

連結 Access 資料庫
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="C:\xxx\xx.mdb";Jet OLEDB:Database Password=')...xxx

ps.注意!! C:\xxx\xx.mdb 指的是 在伺服器上的實體路徑,而不是你本機的路徑喔!!(當然,如果你是在本機資料庫伺服器上測的話,哪就是本機路徑了)

參考網站 http://cp0501.blogspot.com/2008/02/blog-post.html

如何備份MSSQL並透過批次檔自動上傳至FTP

在SQL的 Client可以下 SQL Command ,就能透過 SQL 語法來產生備份檔

BACKUP DATABASE [mydb] TO DISK = N'C:\mydb.bak' WITH NOFORMAT, NOINIT, SKIP, NOREWIND, NOUNLOAD, STATS = 10

然後再透過系統的自動排程,自動執行以下批次內容,上傳到遠端主機

open 192.168.1.100 (你的 ftp server ip)
userid (ftp 的帳號)
password (ftp 密碼)
binary
put C:\BACKUP\SQLDB.BAK
bye

2010年2月3日 星期三

Windows Media Player 網頁播放器參數

網頁播放器的參數含義 Windows Media Player 網頁播放器 參數含義(默認0為否,-1或1為是)

<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="286" height="225">
<param name="AudioStream" value="-1">
<param name="AutoSize" value="-1">
<!--是否自動調整播放大小-->
<param name="AutoStart" value="-1">
<!--是否自動播放-->
<param name="AnimationAtStart" value="-1">
<param name="AllowScan" value="-1">
<param name="AllowChangeDisplaySize" value="-1">
<param name="AutoRewind" value="0">
<param name="Balance" value="0">
<!--左右聲道平衡,最左-9640,最右9640-->
<param name="BaseURL" value>
<param name="BufferingTime" value="15">
<!--緩衝時間-->
<param name="CaptioningID" value>
<param name="ClickToPlay" value="-1">
<param name="CursorType" value="0">
<param name="CurrentPosition" value="0">
<!--當前播放進度 -1 表示不變,0表示開頭 單位是秒,比如10表示從第10秒處開始播放,值必須是-1.0或大於等於0-->
<param name="CurrentMarker" value="0">
<param name="DefaultFrame" value>
<param name="DisplayBackColor" value="0">
<param name="DisplayForeColor" value="16777215">
<param name="DisplayMode" value="0">
<param name="DisplaySize" value="0">
<!--視頻1-50%, 0-100%, 2-200%,3-全屏 其它的值作0處理,小數則採用四捨五入然後按前的處理-->
<param name="Enabled" value="-1">
<param name="EnableContextMenu" value="-1">
<!-是否用右鍵彈出菜單控制-->
<param name="EnablePositionControls" value="-1">
<param name="EnableFullScreenControls" value="-1">
<param name="EnableTracker" value="-1">
<!--是否允許拉動播放進度條到任意地方播放-->
<param name="Filename" value="/blog/01.wma" valuetype="ref">
<!--播放的文件地址-->
<param name="InvokeURLs" value="-1">
<param name="Language" value="-1">
<param name="Mute" value="0">
<!--是否靜音-->
<param name="PlayCount" value="10">
<!--重複播放次數,0為始終重複-->
<param name="PreviewMode" value="-1">
<param name="Rate" value="1">
<!--播放速率控制,1為正常,允許小數-->
<param name="SAMIStyle" value>
<!--SAMI樣式-->
<param name="SAMILang" value>
<!--SAMI語言-->
<param name="SAMIFilename" value>
<!--字幕ID-->
<param name="SelectionStart" value="-1">
<param name="SelectionEnd" value="-1">
<param name="SendOpenStateChangeEvents" value="-1">
<param name="SendWarningEvents" value="-1">
<param name="SendErrorEvents" value="-1">
<param name="SendKeyboardEvents" value="0">
<param name="SendMouseClickEvents" value="0">
<param name="SendMouseMoveEvents" value="0">
<param name="SendPlayStateChangeEvents" value="-1">
<param name="ShowCaptioning" value="0">
<!--是否顯示字幕,為一塊黑色,下面會有一大塊黑色,一般不顯示-->
<param name="ShowControls" value="-1">
<!--是否顯示控制,比如播放,停止,暫停-->
<param name="ShowAudioControls" value="-1">
<!--是否顯示音量控制-->
<param name="ShowDisplay" value="0">
<!--顯示節目信息,比如版權等-->
<param name="ShowGotoBar" value="0">
<!--是否啟用上下文菜單-->
<param name="ShowPositionControls" value="-1">
<!--是否顯示往前往後及列表,如果顯示一般也都是灰色不可控制-->
<param name="ShowStatusBar" value="-1">
<!--當前播放信息,顯示是否正在播放,及總播放時間和當前播放到的時間-->
<param name="ShowTracker" value="-1">
<!--是否顯示當前播放跟蹤條,即當前的播放進度條-->
<param name="TransparentAtStart" value="-1">
<param name="VideoBorderWidth" value="0">
<!--顯示部的寬部,如果小於視頻寬,則最小為視頻寬,或者加大到指定值,並自動加大高度.此改變只改變四周的黑框大小,不改變視頻大小-->
<param name="VideoBorderColor" value="0">
<!--顯示黑色框的顏色, 為RGB值,比如ffff00為黃色-->
<param name="VideoBorder3D" value="0">
<param name="Volume" value="0">
<!--音量大小,負值表示是當前音量的減值,值自動會取絕對值,最大為0,最小為-9640-->
<param name="WindowlessVideo" value="0">
<!--如果是0可以允許全屏,否則只能在窗口中查看-->
</object>

上面的這個播放器是老式的那種,6.4版本!新式播放器是在MediaPlayer9.0以後出現的,也就是說只有裝了9.0或9.0以上的播放器才能正常使用的。


-------------------------------------------------------------------------------

下面是新式播放器代碼,相對以前的來說要簡單很多:
<object id="player" height="64" width="260" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<param NAME="AutoStart" VALUE="-1">
<!--是否自動播放-->
<param NAME="Balance" VALUE="0">
<!--調整左右聲道平衡,同上面舊播放器代碼-->
<param name="enabled" value="-1">
<!--播放器是否可人為控制-->
<param NAME="EnableContextMenu" VALUE="-1">
<!--是否啟用上下文菜單-->
<param NAME="url" value="/blog/1.wma">
<!--播放的文件地址-->
<param NAME="PlayCount" VALUE="1">
<!--播放次數控制,為整數-->
<param name="rate" value="1">
<!--播放速率控制,1為正常,允許小數,1.0-2.0-->
<param name="currentPosition" value="0">
<!--控件設置:當前位置-->
<param name="currentMarker" value="0">
<!--控件設置:當前標記-->
<param name="defaultFrame" value="">
<!--顯示默認框架-->
<param name="invokeURLs" value="0">
<!--腳本命令設置:是否調用URL-->
<param name="baseURL" value="">
<!--腳本命令設置:被調用的URL-->
<param name="stretchToFit" value="0">
<!--是否按比例伸展-->
<param name="volume" value="50">
<!--默認聲音大小0%-100%,50則為50%-->
<param name="mute" value="0">
<!--是否靜音-->
<param name="uiMode" value="mini">
<!--播放器顯示模式:Full顯示全部;mini最簡化;None不顯示播放控制,只顯示視頻窗口;invisible全部不顯示-->
<param name="windowlessVideo" value="0">
<!--如果是0可以允許全屏,否則只能在窗口中查看-->
<param name="fullScreen" value="0">
<!--開始播放是否自動全屏-->
<param name="enableErrorDialogs" value="-1">
<!--是否啟用錯誤提示報告-->
<param name="SAMIStyle" value>
<!--SAMI樣式-->
<param name="SAMILang" value>
<!--SAMI語言-->
<param name="SAMIFilename" value>
<!--字幕ID-->
</object>

-------------------------------------------------------------------------------


Real Player 網頁播放器 參數含義

參數:autostart 屬性:True或是False 作用:指定是否自動播放指定的源文件
參數:backgroundcolor 屬性:任何用符號「#」開頭的16進制數值或是任何預定義的顏色作用:指定圖像窗口的背景顏色
參數:center 屬性:True或是False 作用:指定片斷使用初始編碼大小播放,並且在圖像窗口的中央。
參數:classid 屬性:"clsid:CFCDAA03-8BE4-1lcf-B84B0020AFBBCCFA:** 作用:用於指定ActiveX控件的唯一的字符串標示,可以認出嵌入的RealPalyer播放器。
參數:console 屬性:任何字符串作用:可以將各種不同的RealPlayer控制聚集在網頁上,這樣它們可以交互使用或是保持獨立,而且互相不影響
參數:controls 屬性:ImageWindow,All,ControlPanel,PlavButton,PlayOnlyButton, PauseButton,StopButton,FFCtrl,RWCtrl,MuteCtrl,MuteVolume,VolumeSlider, PositionSlider,TACCtrl,HomeCtrl,InfoVolumePanel,InfoPanel,StatusBar, StatusField,PositionField 作用:可以讓你指定那些控制是可見的。
參數:height 屬性:任何整數值作用:指定RealPlayer元素的高度,單位:像素
參數:id 屬性:任何字符串作用:為標籤中的RealPlayer元素指定名字。
參數:imagestatus 屬性:True或是False 作用:指定是否在圖像窗口中顯示狀態信息,默認值是true
參數:loop 屬性:True或是False 作用:可以讓你指定片斷是否無限循環
參數:maintainaspect 屬性:True或是False 作用:默認RealPlayer拉伸所有的片斷來充滿整個圖像窗口。
參數:name 屬性:任何字符串作用:為標籤中的RealPlayer元素指定名字(在標籤中使用id)
參數:nojava 屬性:True或是False 作用:避免啟動Java虛擬機
參數:nolabels 屬性:True或是False 作用:可以禁止顯示標題或是版權信息(realplayer5.0以上時,它是垃圾...)
參數:nologo 屬性:True或是False 作用:避免RealPlayer啟動時在圖像窗口中顯示
參數:numloop 屬性:任何整數值作用:讓你能夠指定文件片循環的次數,不需要參數loop
參數:prefetch 屬性:True或是False 作用:指定在播放前,RealPlayer是否可以獲得流描述信息,默認值是False
參數:region 屬性:任何字符串作用:同SMIL一起使用。允許你指定使用HTML代替SMIL
參數:scriptcallbacks 屬性:用逗號分割的列表作用:指定瀏覽器的回調監控(好高級的東東!)
參數:shuffle 屬性:True或是False 作用:同多文件片的ram文件或是SMIL文件一起使用。可以讓RealPlayer隨機播放列表中的文件
參數:src 屬性:任何合法的相對或是完整的URL 作用:指定播放的文件或是源文件的地址
參數:type 屬性:字符串作用:為嵌入插件指定MIME類型
參數:width 屬性:任何整數值作用:指定RealPlayer元素的寬度

controls的屬性含義...

組件:imagewindow
作用:視頻顯示區域

組件:All
作用:嵌入RealPlaver的所有按鈕、滑動條和信息面板

組件:ControlPanel
作用:顯示所有的控制按鈕,以及位置滑動條和揚聲器圖標,和調節聲音大小的滑動條

組件:PlayButton
作用:顯示播放(play)按鈕和暫停(pause)按鈕

組件:PlayOnlyButton
作用:僅顯示播放按鈕

組件:PauseButton
作用:僅顯示暫停按鈕

組件:StopButton
作用:僅顯示停止(stop)按鈕

組件:FFCtrl
作用:僅顯示快進(fastforward)按鈕

組件:RWCtrl
作用:僅顯示回放(rewind)按鈕

組件:MuteCtrl
作用:僅顯示揚聲器圖標,用作靜音按鈕

組件:MuteVolume
作用:顯示小的揚聲器圖標(用於靜音)和其上的用於調節音量的滑動條

組件:VolumeSlider
作用:僅顯示豎直的音量滑動條

組件:PositionSlider
作用:顯示水平的位置滑動條

組件:tacctrl
作用:顯示水平的消息框,輪流顯示標題、作者以及版權信息

組件:HomeCtrl
作用:顯示小的Real標識

組件:infoVolumePanel
作用:顯示黑的消息框,用綠色顯示標題、作者以及版權信息,在右手方有揚聲器圖標和聲音調節滑動條

組件:infoPanel
作用:同上面一樣,但是沒有靜音按鈕和聲音調節滑動條

組件:StatusBar
作用:顯示水平的消息框,顯示片斷信息,比如片斷的時間,網絡狀況等等

組件:StatusField
作用:同StatusBar類似,但是只顯示消息區域,顯示網絡消息,比如顯示「Re-buffenng...」

組件:PositionField
作用:小的黑的消息框,顯示整個文件片斷長度以及當前幀在片內的位置

嵌入RealOne播放器
<object ID="rPlayer" CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" HEIGHT="100%" WIDTH="100%">
<param name="_ExtentX" value="23627">
<param name="_ExtentY" value="15187">
<param name="AUTOSTART" value="-1">
<param name="SHUFFLE" value="0">
<param name="PREFETCH" value="0">
<param name="NOLABELS" value="0">
<param name="SRC" value="http://www.blogerhome.com/address.asp?num=24009987&id=10019">
<param name="CONTROLS" value="ImageWindow">
<param name="CONSOLE" value="Clip1">
<param name="LOOP" value="0">
<param name="NUMLOOP" value="0">
<param name="CENTER" value="0">
<param name="MAINTAINASPECT" value="0">
<param name="BACKGROUNDCOLOR" value="#000000">
</object>
嵌入MediaPlayer播放器
<object id="MediaPlayer" width="478" height="300" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.
cab#Version=6,1,5,217" type="application/x-oleobject" standby="Loading Microsoft Windows Media Player components..." classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" VIEWASTEXT>
<param name="DisplayBackColor" value="0">
<param name="DisplayForeColor" value="16777215">
<param name="DisplayMode" value="0">
<param name="DisplaySize" value="-1">
<param name="Filename" value="mms://www.yd631.com/視頻文件.wmv">
<!-- 此處設置播放的視頻連接 -->
<param name="ShowControls" value="0">
</object>

文章來源:http://blog.xuite.net/alltrend/homepage/22863659

使用半透明的Div遮蓋表單防止重複送出(Submit)範例

一般表單當送出後,需要執行比較長的時間,往往畫面留著,有些使用者等不及會再按看看,造成表單重複送出。其實這個問題可以用一個絕對位置的div搭配簡單的JavaScript就可以把表單遮蓋,讓等待的人按不到按鈕。
div>  
測試
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="divBlock.style.display='';" />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
<div id="divBlock"
style="border-style: solid; border-width: 1px; z-index: 1; position: absolute; top: 3px; left: 4px; height: 142px; width: 262px; background-color: #808080;filter: Alpha(Opacity=80);display:none;">
<font color="yellow" size="7">處理中......</font>
</div>

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click   
Dim y As Integer
Dim c As Integer = 0
'跑一個比較久的迴圈
For y = 0 To 1000000000
c += 1
Next
Me.Label1.Text = c.ToString & "--" & Now.ToString
End Sub
轉自 http://itgroup.blueshop.com.tw/topcat/aspx?n=convew&i=4113