[英]ComboBox displays DataRowView instead of actual values
我的組合框有問題,我試圖從myExcel.xls文件中的數據填充它,但它在組合框中顯示System.Data.DataRowView而不是實際值。這是我的代碼:
Application excelApp = new ApplicationClass();
string strWB = "myExcel.xls";
string strWBPath = "D:\\TEMP\\";
// Opening Excel file
Workbook workbook = excelApp.Workbooks.Open(strWBPath + strWB, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
Worksheet worksheet = (Worksheet)workbook.Sheets.get_Item(1);
Range range = worksheet.UsedRange;
int column = 0;
int row = 0;
DataTable dt = new DataTable();
dt.Columns.Add("Agent Name");
for (row = 2; row <= range.Rows.Count; row++)
{
DataRow dr = dt.NewRow();
for (column = 1; column <= range.Columns.Count; column++)
{
dr[column - 1] = (range.Cells[row, column] as Range).Value2.ToString();
}
dt.Rows.Add(dr);
}
workbook.Close(true, null, null);
excelApp.Quit();
// dataGridView1.DataSource = dt;
comboBox1.DisplayMember = "FirstName";
comboBox1.ValueMember = "Sheet1";
comboBox1.DataSource = dt;
Value2是一個對象。 這樣,ToString將返回默認名稱,而不是值。 嘗試使用“作為字符串”而不是“ .ToString”。
有什么理由不將comboBox1.DataSource綁定到列表嗎? 就像是:
dt.AsEnumerable().Select(x => x["FirstName"].ToString()).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.