0
嗨,我有一个小问题。我正在编写一个程序,该程序显示Excel文件文件的列,并在两个分开的列表视图中显示Access数据库的列。您选择表单和表格以显示组合框。 Access列显示正常,但Excel工作表的列不会显示,无论我做什么,但工作表都显示在组合框中,没有任何问题,但无论我做什么,列都不会出现。有没有什么特定的方式可以做到这一点,因为我无法在互联网上找到任何东西。如何使用OLEDB从.XLS文件填充列表视图
这是应该插入的情况下它 {
{
// lvwDestination.Columns.Add(_dt.Columns[i].ColumnName);
lvwSource.Columns.Add("Fields in Database", -2, HorizontalAlignment.Left);
for (int i = 0; i < _Sourcedt.Rows.Count; i++)
{
ListViewItem lvwItem = new ListViewItem("" + _Sourcedt.Columns[i].ColumnName, 0);
lvwSource.Items.AddRange(new ListViewItem[] { lvwItem });
}
}
}
另一部分也是我可能搞砸了它的工作访问,但没有为Excel。我还修改了Select语句的小
私人无效cboSourceName_SelectedIndexChanged(对象发件人,EventArgs的){ // 创建适配器和填充DataSet
OleDbDataAdapter adapter =
new OleDbDataAdapter("Select * from " + cboSourceName.Text +"" + "", _SourceConn);
lvwSource.Columns.Clear();
lvwSource.Items.Clear();
_Sourcedt.Columns.Clear();//Contains all the columns in selected table
try
{
adapter.Fill(_Sourcedt);
}
catch
{
}
LoadColumns2();
}
而且还连接部分
私人void btnConnectSource_Click(object sender,EventArgs e) { try {
string connString =
"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + txtSourcePath.Text + ";" +
"Extended Properties=Excel 8.0";
//"Password=" + txtPWSource + ";";
_SourceConn = new OleDbConnection(connString);
// _OleConn[1].ConnectionString = connString;
_SourceConn.Open();
_Sourcedt = new DataTable();
LoadCombo2();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
请发布您的代码。 – 2011-06-15 11:58:46
好吧,我很新的编码,所以你需要哪一部分 – raz0r 2011-06-15 12:00:23
我一直在寻找在你的Excel文件中读取的代码。如果你的ListView是空的,可能是因为_Sourcedt.Rows.Count = 0,你需要弄清楚为什么你没有得到任何行,例如你正在阅读excel中的空白表格。使用“Add”方法而不是“AddRange”,Add用于添加单个项目AddRange以添加多个项目。 – 2011-06-15 12:25:45