2009-11-16 34 views
7

有沒有一種優雅的方式,將預定義的dataGridView列與SQL語句的結果綁定在一起?如何將dataGridView預定義列與sql語句中的列綁定(不添加新列)?

例子:

dataGridView1.Columns.Add("EID", "ID"); 
dataGridView1.Columns.Add("FName", "FirstName"); 

一些SQL像

SELECT t.FirstName AS FName, t.EmpID AS EID 
FROM table t ... 

,然後我打電話

dataGridView1.DataSource = someDataSet.Tables[0].DefaultView; 

的最後一次通話列添加到我的DataGrid,但我只是想通過綁定它列名稱不添加新列。

的例子會給這樣的結果:

表列:ID,名字,FName參數,EID(ID和姓持有空單元格)

如何獲取:

Table columns: ID, FirstName or FirstName, ID 

此致敬禮!

+1

這是ASP.NET還是WinForms? – 2009-11-16 13:33:28

回答

1

我認爲DataGridView有一個AutoGenerateColumns屬性,不是嗎?

dataGridView1.AutoGenerateColumns = True; 

從MSDN文檔:

公共BOOL的AutoGenerateColumns {集; 得到; } 摘要的會員System.Windows.Forms.DataGridView

:獲取或設置一個值表示 列是否創建 時自動 System.Windows.Forms.DataGridView.DataSource 或 System.Windows.Forms的.DataGridView.DataMember 屬性已設置。

返回:如果自動創建列應爲 ,則返回true;否則, 錯誤。默認值是true。

該屬性不在屬性窗口中,但必須通過代碼進行設置,如我的示例中所示。

+0

Neil,試過dataGridView1.AutoGenerateColumns = True;和=假,但結果相同。不起作用。 – Jooj 2009-11-16 12:01:49

+0

這是ASP。NET或WinForms? – 2009-11-16 13:32:55

+0

我正在使用WinForms。 – Jooj 2009-11-16 14:13:42

0

如何將列添加到GridView的Columns標籤?

<Columns> 
<asp:BoundField DataField="EID" HeaderText="ID" /> 
<asp:BoundField DataField="FName" HeaderText="First name" /> 
... 
+0

謝謝,但我使用winforms! – Jooj 2009-11-16 14:24:40

+0

啊,對不起,我的錯。 – adrianos 2009-11-16 14:47:12

15
從的AutoGenerateColumns設置爲false

除此之外,您還需要設置DataPropertyName用於在DataGridView到相應的字段中的每個列中的數據源。您可以在設置DataSource屬性之前在設計器或代碼中設置它。

11

使用dataGridView1.Columns["FName"].DataPropertyName = "FName"其中FName是您的數據表中的列。

+0

這解決了問題,你的答案應該被標記爲正確的。 – Lucas 2015-12-10 17:26:10

相關問題