星期三, 12月 20, 2006

Visual Studio 2005 Sp1正式版安裝問題

最近Visual Studio 2005 Sp1出來了,但安裝時一直出現下列問題"Windows Installer 服務無法安裝升級",試著將Installer更到最新,但重安裝還是出現如下的問題。










弄到最後,只好試著把SP1(Beta)移除掉,重裝正式版即可,但安裝後發現一件更好玩的事情,menu跟快訊全變成中文了! 快吐血!

若有安裝sp1beta.要移除時.記得先準備好你原來的安裝片!

星期一, 12月 18, 2006

Office 2007 各版本的差異

好久沒查看msdn發佈了什麼新玩意! 周日上午有些空檔,查看了一下簡直要昏倒! 出了一堆東西,看了一下有繁體版的office 2007,馬上download下來看看,將近700mb的檔案,花了30分鐘即下載完成,網路實在爭氣!

在下載前,查看了一下各版本分別,在這裡有蠻詳細的說明!

花了一下時間做升級,若想保留原始的版本也是可行,不過安裝時要選擇"自訂"從裡頭去勾選保留原始版本(除了outlook一定要移除舊版本外),安裝後覺得還蠻不錯用的! 尤其像outlook的附加檔案預視功能,點選到附加檔案時,下面即會切到該檔案的預視功能!



雖然他有很強大的功能,不過他的工月具列卻很佔空間,對1280*768的解析度實在很吃力,找了一下不知道如何縮小工具列,但卻可以在工具列按右鍵選擇自動隱藏。

星期六, 12月 02, 2006

增加你無線網卡的火力--以intel網卡為例

最近因為工作的因素.需要做搬家的動作,而在台北的網路需要優先做處份,因為到時的cable modem要先還給東森,若到月底可能就沒有這些時間了!

回到家拿出了公司配的NB在做規格的檢視,突然無線網路就連上了一家沒設密碼的AP上,當下突然覺得,台北真是個好地方隨手一SCAN都有數個免費AP可用,不過訊號並不是很穩定。打開無線網卡的設定..疑.可以調整耶!

1.開啟Intel PROSet Wireless
2.MENU/進階/介面卡設定
3.將傳輸功率/電源管理 的使用DEFAULT值取消,將輸出功率加大!

本來不穩定的網路就變安份多了!

此時又開了命令模式,使用ping gateway -t 讓ping的指令連續不停運作,拿著nb四處移動,發覺一個很有趣的現像,連隔著一片"落地的玻璃窗(大約1cm)"對傳輸都會造成很大的影響! 打開落地玻璃窗即可坐在書桌前邊餵蚊子邊上網!

星期四, 11月 30, 2006

程式罷工時,程式設計師常對測試人員的20種說詞

程式罷工時,程式設計師會對測試人員常說的20種話! 看到第一個時真的是笑出來了! 哈哈

用我破破的英文把他翻成中文.不過第五個怎麼看都覺得怪怪的.若有好心人要幫我修正.那就先謝過了。
20. "怎麼這麼奇怪勒.."
19. "以前都沒有遇過耶。"
18. "昨天明明是正常的。"
17. "怎麼會這樣子"
16. "這一定是硬體的問題。"
15. "你是如何操作讓程式出錯??"
14. "一定是你資料的問題。"
13. "我己經很久沒有修改相關程式了!"
12. "你的版本是舊的。"
11. "這只是偶發性。"
10. "我沒辦法測試每一個細節!"
9. "這個錯不是因為那個原因。"
8. "客戶從n年前就一直在用這個程式,但從未發現這個問題。"
7. "一定有人偷改了我的代碼。"
6. "你有先掃毒嗎?"
5."你怎麼知道他有問題?" (11/30依照同學-也是資訊公司的負責人:帥eric的建議.做修正)
4. "你無法使用那個版本在您的系統。"
3. "為什麼你要用這種操作方式呢?"
2. "當程式瘋掉時.你人在那?"
1. "在我的機器跑的好好的"

Under The Sun: Top 20 replies by Programmers to Testers when their programs don't work

COUNT DOWN......
20. "That's weird..."
19. "It's never done that before."
18. "It worked yesterday."
17. "How is that possible?"
16. "It must be a hardware problem."
15. "What did you type in wrong to get it to crash?"
14. "There is something funky in your data."
13. "I haven't touched that module in weeks!"
12. "You must have the wrong version."
11. "It's just some unlucky coincidence."
10. "I can't test everything!"
9. "THIS can't be the source of THAT."
8. "It works, but it hasn't been tested."
7. "Somebody must have changed my code."
6. "Did you check for a virus on your system?"
5. "Even though it doesn't work, how does it feel?
4. "You can't use that version on your system."
3. "Why do you want to do it that way?"
2. "Where were you when the program blew up?"
1. "It works on my machine"
Replies by Programmers to Testers when their software don't work.

星期日, 11月 26, 2006

Visual studio 2005 數個DEBUG的技巧

  1. 遇到異常的錯訊.不知道死在那的Debug方式
  2. 享受Debug的樂趣,且遇到exception時,不會讓程式程式無法繼續往下Debug。
  3. 組件(非執行檔)的DEBUG方式

1.有時在DEBUG會跳出錯誤訊息,但是中斷點卻沒有停留在程式錯誤的地方,或是程式的錯誤讓你感到很無厘頭時的處理方式。

  • 把你主程式與你認為有錯的組件,進到project option中,把 Enabled unmanaged debugging打勾
  • Menu/debug/exception,把所有的類型的打勾(或你想看的類型自行打勾),若下回要回覆原來的預設值只要點選reset all即可
  • 再重編專案進入debug即可

2.有時程式中會有一些自行引發的例外,他可能是你有處理的或是無聲的例外,若在RUNTIME執行時並不會有訊息,但在DEBUG MODE時只要遇到就都過不去了!讓你無法往下做DEBUG。

  • 先重編你的專案
  • 自行點選執行檔執行你要偵錯的程式
  • 點選vs2005上的Debug/Attach to process(若有多個主程式那可以用CTRL+MOUSE做多選)
  • 按Attach即可,此時再去RUN你的程式
  • 快快樂樂的去DEUBG吧!

3.組件(非執行檔)的DEBUG方式

  • 方法同2

星期二, 11月 14, 2006

在中國無法使用google或上台灣網站的解決方式

公司換了住的地方,順便也換了網路! 但不幸的是,連google或是一些台灣的網站都上不了!

連上google首頁打上csharp按下enter都直接死機!這還得了~無法使用google的日子該怎麼辦!! 再試了一下gmail,microsoft,blogger都有很多網站無法使用! 真是萬里防火牆!

當下用pcanywhere連回台北的電腦,查了一下代理伺服器,結果發現這個網站有天天更新的列表,設上了代理伺服器後.通通可以上了! :(

星期日, 11月 12, 2006

CSharp OpenSource 挖寶的好地方

這是挖寶的好地方
http://csharp-source.net/


開放源碼的小畫家 Paint.Net
http://www.getpaint.net/download.html

開發源碼的計算機 Open Source C# Programmable Calculator
http://www.personalmicrocosms.com/Pages/cspcalc.aspx

星期一, 11月 06, 2006

Use Optimistic concurrency

使用ado.net使資料更新時.常常會發生
Concurrency violation: the UpdateCommand affected 0 of the expected 1 records
並行違規: UpdateCommand 已經影響必須是 1 記錄的 0.

解決的方式為
當使用TableAdapter Configuration Wizard定義時,選Advanced Options,把Use Optimistic concurrency選項去除,讓產生的update,delete語法只使用key值比對即可解決

而此訊息說真的蠻困擾的,有時是不定時發生 :(

可以參考說明 http://msdn2.microsoft.com/en-us/library/aa0416cz(VS.80).aspx

星期日, 11月 05, 2006

防止廣告軟體、垃圾郵件、病毒、線上騙局 McAfee SiteAdvisor

這是一套免費的軟體,可以提醒你一些網頁的狀況,例如網頁的內容可能有木馬,註冊為會員可能會收到的廣告、垃圾信的數量,也可以在你使用搜索引擎找到的結果,在還沒進到該網站前,即給你提示!

IE7 或是 FireFox 2.0都適用oh!





星期六, 11月 04, 2006

幾個Visual Studio 2005 IDE方便的功能

幾個Visual Studio 2005 Ide方便的功能
1.空白鍵












2.Tab鍵
快速使用snippet完成程式

按tab後會出現




掛載事件





HemiDemi網路書簽

最近使用了 網路共用書簽,也建立了一個.NET學習的群組,歡迎大家可以一起加入來分享書簽! ^^

星期三, 11月 01, 2006

Microsoft Visual Studio 2005 IDE Enhancements 增強工具包

此工具包含了五種功能,但熊會用到的大概就其中的2-3種吧!
1.Source Code Outliner:可以將你開啟代碼中的class、event、method、property、variable等等用樹狀表示出來,樹狀結構可以讓你自己切換要查看那種類型的項目,快速點二下可以開啟到讓程式碼中。 這個功能很不錯,但我覺得使用後會讓ide變慢,所以沒用時記得關閉! 且熊認為他沒將region列入是一個敗筆。
2.Visual C++ Code Snippets: 原本c++不支援snippets,現在也支援了!
3.Indexed Find:使用Microsoft Indexing Service加強型的search(感覺速度較快)! 若你的Indexing Service未啟用,則程式會自動幫你啟用 。若你設定停用,那你會得到一個錯訊"The following error occurred while executing IndexeFind: Could not start Indexing Service, start the service manually."
4.Super Diff Utility:用三原色來表示程式碼比較的不同,紅色表示刪除,藍色表示被更改過,綠色表示新增。用了一下他只能選local端的實體檔案,而無法比較到vss中的舊版本!
5.Event Toaster Utility:IDE訊息通知功能!例如可以在編譯結束時或是debug到中斷點時,以訊息或是聲音告訊你做完了!

以上的功能熊會用到的大概就1.5吧!事實上玩了半天還真的不錯用!使用方式呢?
除了Event Toaster Utility要做設定外,其它的功能都在view/other windows中叫出即可!很easy玩二下即可上手。而Event Toaster Utility請進到Tools Options/PowerToys,設定通知方式,則會在發生讓事件的時點主動通知你!

按我下載囉,go!

星期二, 10月 31, 2006

KB925488修正惱人的全型問題

FIX: The status of the Chinese IME may change to the full-shape mode when you move the focus to a control in a Windows application that uses the .NET Framework 2.0

原來使用.NET Framework 2.0的程式(Visusl studio 2005、SQL Server 2005管理工具、自己開發的winform),常常ime mode會亂切,最常見的是把你切成中文全型,要不然把你切成二個方框,現在只要更新kb925488即可以修正這樣子的問題!

比起之前微軟建議在自己winForm中call IMMConversionStatus API做切換來的好太多了,且是全面性的!更新後就不用在design mode切的要死了~yaya~

星期六, 10月 28, 2006

Virtual PC 2007 Beta

在八月份時,看到了vpc2007的消息,不過當時只知道會支援vista、x64與可能會用free的型式發佈。

而剛在又逛了一下微軟的網站,發現connect十月己經有測試版可以使用了,無奈熊目前回南投過周未,只有慢慢的撥接可以使用,無法立即下載.. :

https://connect.microsoft.com/site/sitehome.aspx?SiteID=288

星期三, 10月 25, 2006

陳寬達釋出 Delphi 深度歷險 與 C++Builder 深度歷險 的電子檔

書雖然是有些年代了,但他的地位不會隨著時間而消逝!! 有興趣的朋友可以到連結去下載!

回想接觸delphi時,是在delphi5的年代,當初為了找尋 Delphi 深度歷險與錢達智的 win32學習筆記,真是找破了頭! 現在作者大方的公開了電子檔,真是很佩服他的分享精神!

星期二, 10月 24, 2006

.NET學習筆記--I/O檔案處理(上)

.NET學習筆記--I/O檔案處理(上)



幾個重要的 NameSpace

System.IO

System.IO.Compression




主要的 Class

檔案系統相關(FileSystemInfo)

DriveInfo、DriveType

Directory、DirectoryInfo

File、FileInfo

FileSystemInfo、FileSystemWatcher

Path



串流相關

Stream、FileStream、MemoryStream、BufferedStream



讀寫相關

StringReader、StringWriter

TextReader、TextWriter

StreamReader、StreamWriter

BinaryReader、BinaryWriter



壓縮

DeflateStream、GZipStream




主要功能如下

FileSystemInfo:是 FileInfo與DirectoryInfo的基礎類別,提供檔案目錄共用的資訊

Attributes:唯讀、隱藏、保存等資訊

Extension:副檔名

LastWriteTime、LastAccessTime、CreationTime :相關時間

Refresh():重新讀取


DriverInfo:取得磁碟機的資訊

DriveType:列舉型態,磁碟機是何類型(網路、固定、CDROM..等等)

如下的例子取資系統中所有磁碟機的資訊(可用空間、所有空間、格式、磁碟名稱等資訊)

{
listBox1.Items.Clear();
//取得系統所有磁碟機
DriveInfo[] driveinfos = DriveInfo.GetDrives();
listBox1.Items.Add(string.Format("系統共有{0}部磁碟機", driveinfos.Length));
foreach (DriveInfo di in driveinfos)
{
try
{
listBox1.Items.Add(string.Format("{0} 磁碟資訊如下 ", di.Name));
listBox1.Items.Add(string.Format("型態為:{0} 格式為:{1} 磁碟名稱:{2}",di.DriveType, di.DriveFormat, di.VolumeLabel));
listBox1.Items.Add(string.Format("所有空間:{0},剩餘空間:{1}", di.TotalSize,
di.AvailableFreeSpace));
//AvailableFreeSpace與TotalFreeSpace 最大不同是前者考量了windows的配額!
listBox1.Items.Add(string.Format("根目錄共有{0}個目錄,{1}個檔案", di.RootDirectory.GetDirectories().Length, di.RootDirectory.GetFiles().Length));
}
catch (IOException ee)
{
listBox1.Items.Add(ee.Message);
}
listBox1.Items.Add("");
}
}

Directory:是一個 Helper類別,有多個Static method!
Exists:目錄是否存在
CreateDirectory:建立目錄
Delete(string 檔名, bool 包含目錄中所有):若目錄中有唯讀檔會失敗
Move:移動目錄
取得/設定時間等等

DirectoryInfo: 取得目錄的資訊
Parent:上一層的資訊
Root:根目錄的資訊
MoveTo:搬移目錄
Create:建立目錄
GetDirectories、GetFiles、GetFileSystemInfos ..

例子,用DirectoryInfo判斷目錄是否存在,不存在就建立他:
DirectoryInfo driveinfo = new DirectoryInfo(@"c:\huwk\bert");
if ( !driveinfo.Exists)
driveinfo.Create();

File:是一個Helper類別,有多個Static method!
Copy:複制
Encrypt:加密(只有當前帳戶能解密)
Decrypt:解密
Replace:取代
等等

FileInfo:檔案資訊
Length:檔案大小
IsReadOnly:是否唯讀
等等
Path:是一個Helper類別,有多個Static method!
Combine:組合路徑(第二個參數若包含絕對路徑,會直接回傳第二個)
GetTempPath:取得目前使用者的暫存路徑
GetRandomFileName:取得隨機檔名
GetTempFileName:取得一暫存檔名
ChangeExtension:變更副檔名
HasExtension:是否有副檔名
FileSystemWatcher:檔案系統監視,可以在檔案目錄被異動(新增、刪除、修改、更名)時,及時做出通知

void fw_Changed(object sender, FileSystemEventArgs e)
{
MessageBox.Show(e.FullPath+":被改變");
}

FileSystemWatcher fw = new FileSystemWatcher();
fw.Path = @"c:\"; //監看c槽
//包含子目錄
fw.IncludeSubdirectories = true;
//通知法則為檔案大小與最後寫入時間
fw.NotifyFilter = NotifyFilters.Size NotifyFilters.LastWrite;
//只監看文字檔
fw.Filter = "*.txt";
//掛上異動的事件
fw.Changed += new FileSystemEventHandler(fw_Changed);
//開始接收
fw.EnableRaisingEvents = true;

後記:

1.當裝置未就序時,會發生IOException,所以處理檔案系統最好加上處理

2.當對windows按右鍵點選新增檔案時,其實他是先建立一個"新增xx檔.xx",當你對他改名時,他又做了一次rename,若此時按取消,他會
做一次刪除的動作。

星期五, 10月 20, 2006

微軟技術論壇回答的文章整理


  • 問題:我的要求是:年份是闰年的判断
熊的回答:
闰年的判断
DateTime.IsLeapYear
  • 問題: 跪求:C#中CPU密集运算时如何获取控制权?
熊的回答:使用Application.DoEvents(); 即可!
  • 問題:Structure回收問題
查過資料後structure不是由記憶體回收行程管理,那如何回收?
不回收會不會造成記憶體不足?
自己要寫dispose?
是不是少用structure?
謝謝回答

熊的回答:
Structure算是value type的一種,所以不會有記憶體回收的問題!宣告一個value type他所佔用的空間是固定的,也就是不會因為你的資料量的增加而
佔用空間變多,也不會因為改變了儲存的值改變了容器的大小,而value type佔用的空間是在stack裡。


而記憶體回收主要是針對reference type,為什麼呢?因為他會有二段資料,指向器(存在stack中),而另一段是資料(存在heap中),例如你操作一個字串相加 例如 s + =
"123";
其實他做了如下的動作,將你原來s的資料搬出來後,與123做相加,然後放回了新的一堆記憶體中(heap),然後把你的指向器指向了新的記憶體中間。此
時問題來了,原始記憶體空間並沒有指向器指到那個空間,所以記憶體回收主要是做這一塊。


而stack中的資料是何時被回收呢? 其實當你一個行程結速時,他就會空出空間了,例如你在一個function中定義了個value type,當結束此function時,他就放出了資源。

  • 問題:讀取字串有幾個相同的字
假設我今天有一個字串是"A,B,C,E,F,G,"
我要如何得知 我的字串裡面有幾個 ","
不知道是否有現成的函式可用呢?
還是該如何去解決呢? 希望可以給個指示的方向阿!! 謝謝

熊的回答
善用regex即可~
Imports
System.Text.RegularExpressions

Dim text1 As String = "A,B,C,E,F,G,"
Dim regex1 As New Regex("[,]")
MessageBox.Show(regex1.Matches(text1).Count.ToString)
  • 問題:如果取得目前營幕解析度?
熊的回答:
MSDN中
即有例子,run一下應可以知道!

Bound 指的是營幕設定的解析度~
Private
Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnGetScreenInfo.Click

Dim Index As Integer

Dim UpperBound As Integer

' Gets an array of all the screens connected to the system.

Dim Screens() As System.Windows.Forms.Screen = _

System.Windows.Forms.Screen.AllScreens

UpperBound = Screens.GetUpperBound(0)

For Index = 0 To UpperBound

' For each screen, add the screen properties to a list box.

ListBox1.Items.Add("Device Name: " + Screens(Index).DeviceName)

ListBox1.Items.Add("Bounds: " + Screens(Index).Bounds.ToString())

ListBox1.Items.Add("Type: " + Screens(Index).GetType().ToString())

ListBox1.Items.Add("Working Area: " +Screens(Index).WorkingArea.ToString())

ListBox1.Items.Add("Primary Screen: " +Screens(Index).Primary.ToString())

Next

End
Sub

  • 問題:程式片段
小弟觀摩他人的程式以下片段一直不得搞不懂 不知是否可以指點一二
其Function GetDataSplit 是啥作用呢

If tmp.GetLength(0) > index Then Return tmp(index)又有何目的
略...
熊的回答:
1.Dim tmp As String() = data.Split(Sep),這段是在將字串用step拆解
2.If tmp.GetLength(0) > index Then Return tmp(index)
,判
段你要取回的index是否合理

例如你下 GetDataSplit("abc", "0") 會得到因為在1步時tmp(0) 為a
1為b 2為c
第2步判別陣列大小3比你要取的index值來得大(表示合理值,取用不會出錯), 回傳a
  • 問題:win form內崁 WebBrowser的問題?
請問各位大大
我在win form裡面內崁 WebBrowserControl(與Form同大小),
但我把win form的FormBorderStyle設為None
因此無法移動視窗
雖然有些書說明只要在MouseMove和MouseDown上撰寫相關程式即可解決
但是由於我內嵌WebBrowserControl所以沒有MouseMove和MouseDown事件
請問該如何解決呢?
感謝^^

熊的回答

使用 HtmlElementEventHandler!

private void Document_MouseDown(object sender, HtmlElementEventArgs e)
{

}

private void Document_MouseMove(object sender, HtmlElementEventArgs e)

{
}
private void Document_MouseUp(object sender, HtmlElementEventArgs e)

{
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.MouseDown += new
HtmlElementEventHandler(Document_MouseDown);

webBrowser1.Document.MouseMove += new
HtmlElementEventHandler(Document_MouseMove);

webBrowser1.Document.MouseUp += new
HtmlElementEventHandler(Document_MouseUp);
}

  • 問題: 請教一下Calendar用法

你好,我是一個剛接觸visual studio的初學者.現在我剛好遇到一個問題,就是Calendar的用法不太清楚.
問題如下:
我要設計的是它不可以點選當天以前的時間.如今天是2006年8月11日,那我想設定的是只可以點選8月11日當天或以後的時間.
希望各位前輩可以指導一下用法.
我是不想讓使用者切換到別的月份,只有是過去的月份都不能點.

熊的回答:
Sorry沒注意到你是asp.net版,下面的範例為 只能選取8/1日後的日期.之前也會顯示.但無法選取應符合您的需求~

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
DateTime dt = new DateTime(2006, 08, 1);
if (e.Day.Date >= dt)
{
e.Day.IsSelectable = true;
}
else
{
e.Day.IsSelectable = false;
}
}

  • 問題:關於tabcontrol上的標籤問題

請問一下tabcontrol上的tab能夠在選到他的時候更改它的字型顏色或者是在字的下方加底線,因為想要讓user能更明顯的知道使用的是哪一個tab

熊的回答
1.tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed
2.掛上事件自己畫,想怎麼晝就怎麼畫
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
TabControl tctmp = (TabControl)sender;

Graphics g = e.Graphics;
Pen p = new Pen(Color.Blue);
Font font;
SolidBrush brush;

if (tctmp.SelectedIndex == e.Index)
{
brush = new SolidBrush(Color.Red);
font = new Font("Arial", 8.0f, FontStyle.Underline);
}
else
{
brush = new SolidBrush(Color.Black);
font = new Font("Arial", 8.0f);
}
g.DrawRectangle(p, tctmp.GetTabRect(e.Index));
g.DrawString(tctmp.TabPages[e.Index].Text, font, brush,
(RectangleF)tctmp.GetTabRect(e.Index));
}

  • 問題:CreateSpecificCulture()與New CultureInfo()的差異
請教各位大大:(.Net Framework 2.0)
CultureInfo.CreateSpecificCulture("??-??")與
CurrentCulture = New CultureInfo("??-??")有何差別呢?
例如使用CultureInfo.CreateSpecificCulture("ja")便沒有 exception發生,
但CurrentCulture = New CultureInfo("ja")就發生exception!

熊的回答
基本上二者是相同的..就算是靜態函式CreateSpecificCulture內部也是叫用CultureInfo的建構子~
不同的事情在,當CreateSpecificCulture在呼叫CultureInfo建構子時,若有發生錯訊他會幫你做必要的處理當他發現你的參數是無法建立起來時,他會幫你check是否有此參數開頭相同的名稱若有就幫你建立,所以他也不是無止盡的不出錯,例如你可以試試看

CultureInfo ci = CultureInfo.CreateSpecificCulture("JA-"); //ok不出錯
CultureInfo ci = CultureInfo.CreateSpecificCulture("JA-aaa"); //ok不出錯
CultureInfo ci = CultureInfo.CreateSpecificCulture("J-aaa"); //出錯
所以CreateSpecificCulture只是會幫你額外做檢查而以
對於文化資訊,你可以參考文化資訊的格式說明,與自訂文化資訊,應會有更深的認識~

  • 問題:將記事本檔案的編碼從ANSI 轉成 Unicode
我現在有 100個 純文字檔 每個檔案 約有 10000筆資料
我知道 我的文字檔的編碼方式都是使用 ANSI 但是現在我想要改成Unicode
不知道有沒有什麼比較好的方式 可以轉換呢?
呵呵 總不可能把文字檔打開 另存新檔 選擇 Unicode 的編碼方式
我是使用Visual Basic 2005 來開發的
作業系統 Windows Server 2003
謝謝

熊的回答:
您好給你二段程式參考
我vb比較不熟,您再自己組合一下
Imports System.IO
Imports System.Text
1.
取得特定目錄下所有副檔名為txt的方式

Dim info1 As New DirectoryInfo("c:\")

Dim info2 As FileInfo

For Each info2 In info1.GetFiles("*.TXT")

MessageBox.Show(info2.Extension)

Next
2.將字碼做轉換.由ansi轉為unicode!
Dim reader1 As New StreamReader("C:\TEST-ANSI.txt", Encoding.Default)

Dim writer1 As New StreamWriter("c:\TEST.TXT", True, Encoding.Unicode)
writer1.Write(reader1.ReadToEnd)

writer1.Flush()

writer1.Close()

reader1.Close()

  • 問題:Crystal Report無法處理直式字型?
請問一下,我使用vs2005內的Crystal Report製作報表,因為要列印標籤的關係所以將欄位字型選成直式字型(@細明體),但在CrystalReport viewer中及列印結果均無法顯示成直式字型,奇怪的是如果把它匯出成PDF,就可以正常顯示出直式字型,之前使用vs2003的crystal report不會有此問題,請問這應該如何解決?謝謝.

熊的回答:
我發覺幾件事情
1.在properties windows中點選的字型會選不到@的字型
2.在properties windows無法改變font.gdiverticlfont 與gdicharset!
但若你對text object按右鍵選format object則字型可以選到"@xxx"
而若使用format object的方式去設定.我打印的結果是正常的(使用@細明體)。
  • 問題:如何得知一個控制項目中是否有某一個屬性值
要如何得知一個控制項目中是
否有某一個屬性值,的指令?

因為我想判斷,如何這個控制項有這個屬性的話會去執行某斷指令?
熊的回答
使用PropertyInfo!
imports System.Reflection
Dim info1 As PropertyInfo = xxxx.GetType.GetProperty("Hint")
If (Not info1 Is Nothing) Then
表示有

  • 問題:如何自動編號??
各位高手:我是使用SQL
2000 ,我有二個資料表,我使用SELECT
方式,JOIN出我要的資料,但是如我想要在這些資料中增加一個欄位做自動流水編號,應該要如何下指令?

熊的回答
使用rowid,若你是sql2005那可以使用row_number()!
IF EXISTS
(SELECT * FROM TEMPTABLE)

DROP
Table TEMPTABLE

GO

select
ROWID=IDENTITY(int,1,1), *

INTO
TEMPTABLE

from
YourTable

go

select * from TEMPTABLE;
go
  • 問題:請教如何攔截BindingSource.MoveNext VB2005
BindingNavigator1.BindingSource= BindSource1
當我們按下BindingNavigator1的MoveNextItem
它會自動呼叫BindSource1的MoveNext
並且會針對目前這筆資料作EndEdit動作
我希望能在EndEdit之前先做資料判斷
如果資料錯誤則不要做EndEdit以及MoveNext的動作
請問應該要怎麼做
謝謝

熊的回答:
原生的bindingsource無法做到!
你可以試著使用 datatable.RowChanging
AddHandler Me.dataSet1.TABLENAME.RowChanging, New
DataRowChangeEventHandler(AddressOf Me.TABLENAME_RowChanging)


Private Sub TABLENAME_RowChanging(ByVal sender As Object, ByVal e As
DataRowChangeEventArgs)

do something!

End
Sub

  • 問題:關於SQL時間函數
各位前輩大大
請問在sql server中有 類似 my sql 中的UNIX_TIMESTAMP(date)及FROM_UNIXTIME(unix_timestamp) 的函數用法嗎??
或者 要如何達到這個功能? 煩請各位前輩不吝指導~

熊的回答
你是要計算二個日期間距離的天數、時、分等資料吧? 試試看 datediff吧!
DATEDIFF( datepart , startdate , enddate )
selectDATEDIFF(minute, Convert(DateTime, '2006/01/01'), Convert(DateTime,
'2006/01/02'))

  • 問題:功能表的快速鍵?
請教各位大大一個笨問題
我看書上寫說如果要設定功能表上的快速鍵
只要設定ShortcutKeys的值就好
可是我怎麼設了之後都沒反應呢?
麻煩幫我解惑一下~~感謝^^

熊的回答
若你是要設定最外層的hotkey.你可以試試如下的方式~
ToolStripMenuItem.Text= "熊(&A)"; 在&後的第一個英文字母即MENU的HOTKEY! 按ALT+A即是!
若你是要設定ShortcutKeys,那要設在第一層之下(你可以看看現在IE與OFFICE的操作方式),而按壓的功能即會馬上被觸發才是!
  • 問題:讓程式不會繼續往下執行
熊的回答
使用void的型式,其實都是省略return,所以直拉在你想離開整個處理函式時,下return;(無回傳值)即可!
  • 問題:IErrorInfo.GetDescription 因為 E_FAIL(0x80004005) 而失敗
不好意思我想請問一下
我的ACCESS是2003 但是我現在有個資料庫檔是97的版本
那我用2003可以將資料庫打開但是我用vs.c#2003
去連資料表的時候會發生下面的錯誤
IErrorInfo.GetDescription因為 E_FAIL(0x80004005) 而失敗。
我想請問一下這事什麼原因
謝謝
熊的回答
http://www.dbforums.com/showthread.php?p=4550116
當你的資料表有sql的保留字時,就會發生此問題~不管是tabname或是fieldname~