2016-03-17 25 views
2

我有這個表:使用DataGridView的複選框列在數據庫中的字符串數據列

applicant | module | date | approvation | 
    xxxx   xxxx  xxxx  xxxxxxx 
    yyyy   yyyy  yyyy  yyyyyyy 
    tttt   tttt  tttt  ttttttt 

我有這個數據庫表。查詢後,我分配 DataTableDataGridView.DataSource

QueryAssist qa = new QueryAssist(); 
DataTable dt = new DataTable(); 
dt = qa.runQuery('myquery'); 

dgvApprovazione.DataSource = dt; 
dgvApprovazione.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells); 

// modify, transform 2nd column in cellLink 
foreach (DataGridViewRow row in dgvApprovazione.Rows) 
{ 
    row.Cells[1] = new DataGridViewLinkCell(); 
} 

現在我想改變列approvation這是一個字符串approvednot approved並顯示一個複選框來代替。

如果該細胞的值是approved複選框被選中和未改性(onlyread)。

類似的東西:

foreach (DataGridViewRow row in dgvApprovazione.Rows) 
{ 
    if (row.Cells[3].Value.ToString().Equals("APPROVED")) 
    { 
     row.Cells[3] = new DataGridViewCheckBoxCell(); 
    } 
} 

我要實現......幫我一個問題。

這是可能的嗎?怎麼樣?

了重新蓋上:

我想改變這種價值包含一列是一個文本/字符串(批准或不批准)的複選框(選中或取消選中)

對不起,我的英文不好..

好的替代品?

+0

改變Approvation字段的類型數據庫中的表爲布爾將做的工作。 – ehh

回答

2

要存儲是/開/關真/假在數據庫中的值不或,最好是使用SQL Server bit數據類型,但使用DataGridViewCheckBoxColumn可以顯示和編輯也是一個字符串列通過設置TrueValueFalseValue屬性。

在下面的例子中,我假設你在數據庫中的空列一個需要值存儲爲APPROVEDNOTAPPROVEDnvarchar(50),並且需要使用DataGridViewCheckBoxColumn編輯這些值。

要做到這一點,你應該使用設計師或代碼添加列是這樣的:

var column1 = new DataGridViewCheckBoxColumn(); 
column1.Name = "column1";       //Name of column 
column1.HeaderText= "Is Approved";    //Title of column 
column1.DataPropertyName = "approvation";   //Name of filed in database 
column1.TrueValue = "APPROVED";     //True value 
column1.FalseValue = "NOTAPPROVED";    //False Value 
this.dataGridView1.Columns.Add(column1); 

這樣告訴你批准或者不批准的複選框,你也可以編輯使用複選框這些值。

如果您不需要編輯,只希望向他們展示,你可以設置讀取該列真正的唯一屬性。

+1

這篇文章對於使用'DataGridViewCheckBoxColumn'作爲字符串列是非常有用的,它似乎回答了您的問題。如果投和接受的答案:)在開始 –

+0

,我的想法是滑動(的foreach)的整列「批准」或「不認可」(串)...然後創建一個新的列這將是巨大的(複選框列)被添加到datagridview,如果值是「批准」...複選框選中,否則取消選中複選框。並且現在只顯示datagridview。我曾與申報解決的是/數據庫中沒有字段:) .. 但你的解決方案是好的.. – rul3z

+1

這是更好地使用答案說位字段。但對於用戶需要使用複選框編輯(顯示)字符串列的情況,解決方案可能會很有用:) –

相關問題