2015-04-30 21 views
0

我有一個ListView用於許多不同類型的MySQL搜索,它們都返回不同的數據。 以下面的查詢爲例。如何爲MySQL搜索創建動態ListView列?

"SELECT `entry`, `name` FROM `accounts` WHERE `name` LIKE %@name%"; 

每次我運行一個查詢,我必須設置ListView列,所以它會正確顯示。

 listView1.View = View.Details; 
     listView1.Columns.Add("Entry", 50, HorizontalAlignment.Left); 
     listView1.Columns.Add("Name", 210, HorizontalAlignment.Left); 

是否有可能基於從MySQL服務器而不是上述代碼返回的列數據添加ListView列?

+0

你是說你需要動態添加coulmns? – Mairaj

回答

0

您需要填寫從數據庫中的數據,比基於數據你可以添加到ListView控件這樣的列。

DataTable dt = new DataTable(); 
using (SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString())) 
{ 
    SqlCommand cmd = new SqlCommand("SELECT `entry`, `name` FROM `accounts` WHERE `name` LIKE %@name%", con); 
    cmd.Parameters.AddWithValue("@name", "somename"); 
    SqlDataAdapter dAdapter = new SqlDataAdapter(cmd); 
    dAdapter.Fill(dt); 
} 
foreach (DataColumn dc in dt.Columns) 
{ 
    listView1.Columns.Add(dc.ColumnName, 50, HorizontalAlignment.Left); 

} 
+0

這很好。謝謝。 – AlfredLopez

0

如果我正確認識這一點,你可能想嘗試這樣的:

string clmHeader = null; 
int clmWidth = 0; 

foreach (string s in List<T>()) 
{ 
    clmHeader = s; 
    //Add an invisible label to your form 
    lbl.Text = s; 
    clmWidth = lbl.Width; 

    ListView.Columns.Add(clmHeader, clmWidth, HorizontalAlignment.Left) 
}