2007年12月28日 星期五

Window Forms的資料繫結元件

Visual Studio(2005以後的版本)在視窗應用程式的資料繫結功能上提供一個非常便利的工具,透過這個工具,開發人員可以很快的建立資料存取的表單(只需一個拖拉的動作)。許多朋友看到這功能通常的反應是「口圭!」,想一想之後又會接著提出下一個疑問:「都做好了,如果想要手動自行設計或修改,反而不知怎麼做?」。

其實工具是將所有必要的元件及操作步驟綁成一個動作完成,以便需要簡易功能的開發人員快速完成設計。本篇文章將介紹Windows Form資料繫結的元件,讓您了解如何修改或者自行建立表單。

這裡先簡單介紹資料繫結工具的使用,只要以下幾個步驟:
1.「資料」選單選取「加入資料來源」。
2. 使用「加入資料來源」連接到資料來源及存取的資料表。畫面如圖1。
3.在「資料來源」視窗選取要在表單顯示的欄位或資料表,然後拖拉到表單上即可。畫面如圖2。


圖1

圖2



在完成的表單設計視窗上看到幾個物件:

  • xxxBindingSource
  • xxxBindingNavigator
  • xxxTableAdapter
  • xxxDataSet

xxxDataSet應該都知道是什麼。BindingSource及BindingNavgator類別是.NET 2.0以後新增的Windows Form管理資料繫結的類別。這篇文章的主角是BindingSource。

更多詳細內容請參閱.NET Magazine的Window Forms的資料繫結元件.

2007年12月11日 星期二

ADO.NET 2.0資料提供者

ADO.NET支援多種資料來源類型的存取功能。在它的架構圖中,開發人員可以由資料來源而決定使用何種.NET資料提供者(.NET Data Provider)。不過當程式需要開發某些資料庫工具時,可能需要讓使用者決定資料提供者,那麼開發人員就不能直接在程式中寫死使用某種提供者(例如:SqlClient或OleDb…等)。本文將介紹ADO.NET資料提供者的一個重要類別 – DbProviderFactory。

01

圖是ADO.NET之.NET 資料提供者架構圖,開發人員依據資料來源決定使用何種資料提供者。例如,SQL Server 7.0以上版本的資料來源使用System.Data.SqlClient命名空間下的類別。程式碼列表1,是使用SQL Server .NET Data Provider連到本機的Northwind資料庫存取產品資料表。

Visual Basic
Dim cn As New SqlConnection("server=.;database=northwind;integrated security=true")
Dim com As New SqlCommand("Select ProductID, ProductName From Products", cn)
Dim reader As SqlDataReader
cn.Open()
reader = com.ExecuteReader()
Dim bindingSrc As New BindingSource
bindingSrc.DataSource = reader
DataGridView1.DataSource = bindingSrc
cn.Close()

C#

SqlConnection cn = new SqlConnection("server=.;database=northwind;integrated security=true");
SqlCommand com = new SqlCommand("Select ProductID, ProductName From Products", cn);
SqlDataReader reader ;
cn.Open();
reader = com.ExecuteReader();
BindingSource bindingSrc = new BindingSource();
bindingSrc.DataSource = reader;
cn.Close();
DataGridView1.DataSource = bindingSrc;


詳全文...

2007年12月1日 星期六

Windows Form 2.0文字方塊的自動完成

使用過Internet Explorer的人對於自動完成這項功能應該不陌生,它可以協助使用者快速輸入以前曾經輸入的內容,例如:地址欄位,曾經在某網站輸入過,下次再輸入地址欄位類似資料時,文字方塊會自動完成或是出現下拉清單讓使用者選擇,這就是自動完成功能。

這是在網頁上呈現的功能,過去曾有人問過「自動完成在Windows Form上是否可行」?答案在.NET Framework 1.x上沒有內建此項功能,必須由開發者自行開發。在.NET Framework 2.0已經內建此項功能,本篇文章將介紹.NET Framework 2.0中Windows Forms文字方塊的自動完成。

自動完成的屬性
Windows Forms .NET 2.0的TextBox、ComboBox…等文字方塊類控制項支援自動完成屬性,透過這些屬性的指定,可以指定自動完成的模式、資料來源,支援檔案系統(檔名、目錄等字串),以及URL字串,相關屬性如下:

  • AutoCompleteMode 屬性
  • AutoCompleteSource屬性
  • AutoCompleteCustomSource屬性

詳全文...