發表文章

目前顯示的是 10月, 2010的文章

在 Visual C# 2010 用 DATASET 讀取 XML 檔案

圖片
  今天又有新的需求進來,客戶希望能在 XML 檔中 存取一些公司的基本定義資料及設定資料庫的路徑,這樣子程式在一開啟的時候可以先詢問客戶要處理哪一家公司的資料,應該是想用同一個系統處理多家公司的資料,而每一家公司的資料是放在單獨的資料庫裡。   XML 的檔案格式如下: <? xml version="1.0" encoding="big5"?> <公司集合> <公司>   <名稱>輕鬆工作家股份有限公司</名稱>   <統一編號>00000000</統一編號>   <資料庫>c:\database\00000000.mdf</資料庫> </公司> </公司集合>   但一開始給使用者的檔安希望是一個由程式產生的XML 檔如下: <? xml version="1.0" encoding="big5"?> </公司集合>   程式片段如下:  XmlDocument xmlDoc = new XmlDocument();                          XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "big5", null);                          XmlElement rootNode = xmlDoc.CreateElement("公司集合");                          xmlDoc.InsertBefore(xmlDeclaration, xmlDoc.DocumentElement);                          xmlDoc.AppendChild(rootNode);                          xmlDoc.Save(XmlFile); //  Xmlfile 是xml 檔的絕對路徑檔名   因為想用

在 Visual Studio 2010 C# 使用 Sqlite

圖片
  現在的每一個系統,幾乎都需要一個資料庫,使用 sqlite 的原因是因為 Android 的手持上是使用 sqlite, 所以先在 internet 上 Google 一下 "ADO NET 4.0 Sqlite",  立刻得知要先去 Download SQLite-1.0.66.0setup.exe, 你可以直接從此 下載 。   網頁的畫面大概如下   接著執行 SQLite-1.0.66.0-setup.exe, 畫面如下   接著設定存放位置 接著再按 2 次 "Next>" 就會開始安裝了   接著選擇要支援開發工具及版本   最後系統顯式安裝完成畫面,按 "Close" 完成安裝   接著用 Visual C# 2010 Express 開一個新專案, 我是取用 SQLiteTest, 我先測試Bindingsource, 在 DataSource 中選擇 Add Project Data Source  接著畫面出現選擇 Data Source Type: 選擇 Database 並按 "Next >",繼續選擇 Data Model, 選擇 DataSet 並按 "Next >",繼續選擇 Choose Your Data Connection: 按下 New Connection , 看到: 按下 " Change" 就會看到 "Change Data Source": 在 Data source 的選項中可以看到SQLite Database File,選擇 SQLite Database File 並按下 "OK" : 接著按下 "OK", 可怕的事發生了: 趕快再 "Google 一下",找到一篇文章 For VS C# 2010 you need to add following lines to C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\VCSExpress.exe.

Window 7 - 列印發票軟體 / Visual C# 2010 express 序列埠 (RS232) - 2

    因為一直等不到 Serial Port 的印表機 ,於是想先用我的 PDA 模擬成 RS232 終端機先行測試,首先先把 PDA 的 Com Port 設成 9600,N,8,1,也把程式中的COM Port 設成一樣,為了能快速設定 SerialPort,在 using 後加一行: using System.IO.Ports; 這樣 Visual C# 2010 的編輯器會幫你帶出很多預先設定好的質,設定 SerialPort 的程式如下:            serialPort1.PortName = "COM6"; serialPort1.BaudRate = 9600; serialPort1.Parity = Parity.None; serialPort1.DataBits = 8; serialPort1.StopBits = StopBits.One; 設定好 SerialPort 後, 再加一個按鈕輸出 "Hello World" 到 PDA 上,在 button.click 中加入 serialPort1.WriteLine("Hello world"); 果然在 PDA 上收到了 "Hello world" 。     處理 SerialPort 比較頭大的部分,都在於讀資料的部分,因為在執行前面作業的時候,背後可能已經有資料傳輸了,系統要一直準備接收資料,還好 Visual C# 2010 處理了大部分,不過先試一個最直接但會產生錯誤的方法,在 Form 上加一個 TextBox 物件準備接收 SerialPort傳來的資料,然後在 SerialPort 的 Datareceived 中加上 一行 textBox1.Text = serialPort1.ReadExisting; Visual C# 很厲害馬上告訴你: Error :Cannot convert method group 'ReadExisting' to non-delegate type 'string'. Did you intend to invoke the method?    在 Wi

Window 7 - 列印發票軟體 / Visual C# 2010 express 序列埠 (RS232) - 1

圖片
   列印發票的機器有很多都是接 Rs232 (序列埠) 的,所以要能在 Window 7 下執行,另一個重要的工作就是要能解決 Serial Port Communication, 先 Google 一下 "serial port visual c#" ,果然網路上有不少介紹 Visual C# and Serial Port 的文章 ,其中有一篇淺顯易懂的在  http://csharp.simpleserial.com/     Simple Serial Communication with Microsoft Visual C# Express。 接著用Visual C# 2010 打開原有的專案,開啟 ToolBox ,很幸運在 Visual C# 2010 Express 版中 Microsoft 已經內含一個 SerialPort的物件。 有框處就是SerialPort的物件    拖拉 SerialPort 到 正在編輯的 Form 上, SerialPort1 就自動產生了。 下方就是產生的 SerialPort1     其實單純寫 Serial Port 的程式,應該不是很複雜,複雜的工作都是要處理列外狀況,先寫一個按鈕單純的去開 COM1,事實上目前我的 筆記型電腦上是沒有 COM1的,在 buttonclick 處加上   private void button2_Click(object sender, EventArgs e)         {             serialPort1.PortName = "COM1";             serialPort1.Open();         } 接著用 Debug 去執行,按下 開啟 Comm Port的按鍵, 果然 IOException 出現了: IOException 出現    為了不讓程式在執行時因為 IOException 跳出, 在 serialPort.Open 用 try 及 catch 包起來如下: private void button2_Click(object sender, EventArgs e)         {