發表文章

目前顯示的是 1月, 2008的文章

SQL Server Express 與 SQL Server Compact edition

這篇也是給自己備忘的; 先前MS提供了免費(需要註冊)的Express資料庫版本資料庫可以使用,這在一些中/小型的應用程式是相當好用的,但資料庫的安裝與設定還是有一定的難度;而現在最新的是Compact版本,那麼在這兩個版本之中應該如何去選擇,這兩種版本的差異又是什麼呢?請參考下面這篇 Choosing Between SQL Server Compact 3.5 and SQL Server 2005 Express Edition

利用Timer做簡單的倒數計時

瀏覽文章時看到下面這篇 如何編寫 Visual Basic Timer ,是詢問如何做倒數顯示的功能,之前還沒有玩過這樣的功能,這邊簡單測試了一下,還滿好玩的;下面是測試的程式碼,可以參考看看 Dim StartTime As DateTime Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click StartTime = Now Timer1.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick TextBox1.Text = (Now - StartTime).TotalSeconds TextBox2.Text = (DateTimePicker1.Value - Now).TotalSeconds End Sub 範例程式碼也可以在 這邊 下載

如何列出使用中的Tcp/IP連接埠以及狀態

這篇主要是給自己備忘,有需要的朋友也可以參考看看 在命令提示字元裡面輸入下面指令便可以列出相關資訊了 netstat -p tcp -a

使用BindingSource連接資料庫

圖片
最近在討論區看到滿多有關資料庫使用上的問題,有部分問題討論之後還是覺得怪怪的,網友反應的狀態測試不太出來;所以我想乾脆就整理一些簡單的使用相關方法給大家參考,希望能夠幫助大家更了解一些;本篇是第一篇,算是入門吧。 首先我們要建立資料庫,在這邊為了方便測試,建議您也建立跟筆者相同結構的資料庫;資料庫部分是使用mdb(Access2000~2003)的類型,資料表結構如下 People資料表 資料表欄位設定為SEQ(PK,自動編號),pName(文字,20),pID(文字,10),pPhone(文字,10),pDepartmentID(文字,3) Department資料表 資料表欄位設定為ID(PK,文字,3),dName(文字,20) 資料庫名稱筆者是設定為myDB.mdb 接下來請建立新的"Windows應用程式"專案,這裡筆者是將專案名稱設定為Test,專案建立完成之後,您會看到預設的Form1表單產生了,再來因為我們會用到BindingSource,所以請到"工具箱"裡面找到"資料"標籤,展開之後你會看到下面這些東西 我們先把後面需要用到的東西拉出來(你可以拖曳到Form上面或是滑鼠連點兩下再來調整大小都可以),請把下面的元件加進來 BindingSource DataGridView BindingNavigator 好了之後再從"通用控制項"的標籤中拉出一個Combobox,會用到的就是這些東西了;首先我們就來設定BindingSource吧! 先用滑鼠點一下畫面下方的BindingSource1,之後到"屬性"的地方,你會看到DataSource的屬性,像下圖這樣 之後點選上方超連結的"加入專案資料來源",之後就會出現"資料來源組態精靈"了,下面筆者把各步驟的圖片截取下來;首先是選擇資料類型,這邊我們是要把資料庫加到專案中,所以選擇"資料庫",像下圖 點選下一步,之後會選擇資料連接的設定,請點選新增連接的按鈕,之後你會看到像下圖的設定畫面 這裡因為我們使用的是Access的資料庫檔案,所以選擇Access(紅色框框的部分),而下方"永遠使用這個選項"筆者的習慣是每次都自己選,你

安裝部屬 移除舊版本及相關資料

之前弄過一篇 如何製作安裝檔 ,應該後面要在延續下去~不過因為懶啊..拖到現在還沒進行.. 今天瀏覽 璉大的blog ,看到了一些相關的文章,把連結列在下面,鄉親們可別錯過了 [VS2005]安裝時移除舊版程式 [VS2005]在封裝專案中加入修復、移除程式的捷徑 [VS2005]在封裝專案中加入的捷徑使用系統預設圖示 [WinSDK] Orca 哪裡找?

從使用者資料存放區擷取資訊時發生錯誤

圖片
今天打算連接到我可愛的WIndows CE5.0裝置來做遠端偵錯,因為前一次的偵錯我變更了裝置的IP設定,現在要把他設定回來,不然會連接不上,於是乎我就開啟了Visual Studio,之後到功能表的"工具"->"選項"(如下圖)想要來做相關設定 結果按下屬性按鈕之後出現了下面這個錯誤訊息 這是什麼狀況..哇哇~~把我的WIndows CE 設定還給我~~~後來重開了幾次Visual Studio無效之後到MSDN去搜尋一下,呼....總算找到了解決的辦法...不過相關設定要重新設定.. =.=|| 方式是先關閉Visual Studio(如果你正在用遠端偵錯相關功能的話也要關掉),之後把%USERPROFILE%\Local Settings\Application Data\Microsoft 這個位置的Corecon 整個給砍了,之後重新開Visual Studio就可以了 呼...專案進度又delay了....累.. 相關參考 從使用者資料存放區擷取資訊時發生錯誤 (裝置) 如果對於如何用VS2005來連接到裝置部分有問題的話可以參考 這裡

WPF學習日誌 第一彈 ~Vary the background~

圖片
最近要開始K書,練習WPF相關的東西,書是K這本 雖然Code的部分都是C#不過應該是不會差太多的~剛開始沒多久,按照書上給的範例練習了一下,順便把練習的程式碼貼出來,想看看WPF的朋友也可以測看看。 首先當然要先建立我們的環境,如果你還沒有安裝.Net framework3.0的話可以參考 這一篇 。 設定好環境之後,建立一個新的專案(這邊我還是用VS2005+延伸套件來做) 之後會看到一個空空的Form,可以看看左邊的工具箱,這時候跟一般做WIndows Form應用程式的時候已經是不一樣了~接下來在方案總管的地方選擇View Code 換到程式碼檢視的部分貼上下面的程式碼(這個範例主要是當滑鼠移動的時候會改變背景的顏色,越靠近中心點顏色會越偏白色) ' Interaction logic for Window1.xaml Partial Public Class Window1 Inherits System.Windows.Window Dim Brush As New SolidColorBrush(Colors.Black) Public Sub New() InitializeComponent() End Sub Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded Me.Title = "Vary the background" Me.Background = Brush End Sub Private Sub Window1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Input.MouseEventArgs) Handles Me.MouseMove Dim H As Double = ActualHeight - 2 * SystemParameters.ResizeFrameHorizontalBorderHeight Dim W As

POP3

上一篇有提到了SMTP,這是寄信的部分,那如果要收信怎麼做呢?下面這邊有些POP3參考資料可以看,有空再來實做看看;POP3使用的Port是110,基本指令也不複雜,比較麻煩的是信件收下來之後要去處理的解碼動作會煩人一些 第九章 網路應用程式規劃(崑山科技大學 電子工程學系) 作者:黃慶祥 Implement POP3 and SMTP in .NET(codeProject) RFC 1725

不負責實驗室之 SMTP

在.Net Framework中有提供了 SmtpClient 類別 ,可以來做SMTP相關的功能,但在裝置上沒有沒有支援..但是又想可以在裝置上面用..怎麼辦?只好向google大神求救;找了些相關資料,測試了一下,是可以動作的,不過有點慢~測試嘛~要再補強了。 下面這邊有些參考資料可以看 SMTP 指令說明 RFC 821 - SIMPLE MAIL TRANSFER PROTOCOL 下面是測試的程式碼,沒有經過詳細的測試與除錯(所以說是不負責實驗室嘛~),要靠各位看官發揚光大了,別忘了給我一份喔~ 類別程式碼 Imports System.Net Imports System.Text Imports System.Net.Sockets Public Class cSMTP Private _HOSTNAME As String = "" Private _HOSTPort As Integer Private _btySend() As Byte Private _btyRecv(255) As Byte Private _TCP As TcpClient Private _strTmp As String Private _SleepTime As Integer = 300 Private _ConnectTimeOut As Integer = 1 Private _dateTmp As DateTime Private _intReturn As Integer = 0 Private _MailInfo As myMail Private Structure myMail Public MailDate As DateTime Public MailFrom As String Public MailTo As String Public Subject As String Public MailBody As String End Structure ''' ''' 建立執行個體

System.Reflection

在下面這一篇看到了一篇有興趣的文章,原文是 不使用判斷的方式,如何依變數值呼叫不同的function? ,跟反映有些關係,改天比較有時間再來好好研究一下這個部分,下面這邊是實做的程式碼,目前只有呼叫Sub的部分,呼叫Function與取回傳回值得部分還要再去看一下,有興趣的朋友可以參考看看 Imports System.Reflection Public Class Form1 Dim arg() As Object Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.GetType().InvokeMember("ShowMsg", BindingFlags.Instance Or BindingFlags.InvokeMethod Or BindingFlags.NonPublic Or BindingFlags.Public, Nothing, Me, arg) End Sub Private Sub ShowMsg() MessageBox.Show("Hello") End Sub Private Function myShowMsg() As String MessageBox.Show("Hello") Return "" End Function End Class

無法設定中斷點 尚未載入符號檔

圖片
有時候也不知道怎麼搞得,程式(專案)copy來copy去,突然有天設定中斷點之後開始偵錯....噹噹..尚未載入符號檔,中斷點過站不停...平常又很依賴中斷點來偵錯,這下真的是慌了手腳;當下只能用messagebox.show來一步一步看到底是錯在什麼地方.. 今天靜下心來查了一些資料,測試之後真的有效,原來把專案的組態設成了Release,改成Debug之後就可以正常設定中斷點了;現在那台電腦不在手上改天改回Release之後來測試看看是不是會一樣的狀況;下面有些資料可以參考 沒有符號資訊對話方塊 有一點要特別注意,一般使用VB的開發設定時"方案"中如果只有單一專案的話會看不到要怎麼去設定組態,這時候請依照這篇文章的說明" HOW TO:在套用 Visual Basic 開發者設定的情況下管理組建組態 來設定,設定完之後在專案的屬性裡面就可以看的到了,如下圖 如果方案中有多個專案,那麼在方案的屬性中直接就可以看到設定的地方,如下圖

向Windows註冊熱鍵(RegisterHotkey)

今天在MSDN上看到下面這篇文章 VB2005按鍵問題 ;主要是說如何在程式沒有得到焦點的情形下還能接收到我們設定的按鍵;感覺還滿有趣的,根據璉大文中提供的資料去看了一下也順便實際操作一下,還滿順利的,貼出程式碼供大家參考看看了 首先是一些相關的參考資料 .NET system wide hotkey component 按下某組鍵(HotKey)便執行某程式 下面是參考的程式碼 Module的程式碼 Imports System.Runtime.InteropServices Module Module1 SetLastError:=True, _ ExactSpelling:=True, _ CallingConvention:=CallingConvention.StdCall)> _ Public Function RegisterHotkey(ByVal hwnd As IntPtr, _ ByVal Id As Int32, _ ByVal fsModifiers As Int32, _ ByVal vkey As Int32) As Boolean End Function SetLastError:=True, _ ExactSpelling:=True, _ CallingConvention:=CallingConvention.StdCall)> _ Public Function UnregisterHotkey(ByVal hwnd As Int32, _ ByVal Id As Int32) As Boolean End Function SetLastError:=True, _ ExactSpelling:=False)> _ Public Function GlobalAddAtom( _ ByVal lpString As String