C# 我设置OleDb连接有困难
您好,我正在尝试建立与数据源的连接,提取信息并将其显示在网格视图中。问题是我总是得到ada的空值。是否可能输入了错误的查询,或者适配器是否有问题 此外,我使用myInt变量插入不同的数据源,因为我必须处理多个文件,这可能也会有问题C# 我设置OleDb连接有困难,c#,oledb,C#,Oledb,您好,我正在尝试建立与数据源的连接,提取信息并将其显示在网格视图中。问题是我总是得到ada的空值。是否可能输入了错误的查询,或者适配器是否有问题 此外,我使用myInt变量插入不同的数据源,因为我必须处理多个文件,这可能也会有问题 try { //establish connectioin OleDbConnection conn = new OleDbConnection(("provider=Micros
try
{
//establish connectioin
OleDbConnection conn = new OleDbConnection(("provider=Microsoft.Jet.OLEDB.4.0; " + ("data source=" + myInt + ";" + "Extended Properties=Excel 8.0;")));
OleDbDataAdapter ada = new OleDbDataAdapter("SELECT * FROM MarkingSheet$]", conn);
DataSet ds = new DataSet();
ada.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
conn.Close();
}
答复
这就是我的工作
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + myPath + ";Excel 12.0;HDR=YES;"); ;
conn.Open();
OleDbDataAdapter ada = new OleDbDataAdapter("select * from [Marking Sheet$]", conn); ;
DataSet ds = new DataSet();
ada.Fill(ds);
将sql更改为
"SELECT * FROM [MarkingSheet$]"
因为缺少一个开口支架。代码中的错误是,在尝试填充适配器时,您尚未打开连接。您的SQL语句也是错误的。您也可能希望将DataTable绑定到DataGridView,如下所示:-
try
{
OleDbConnection conn = new OleDbConnection(("provider=Microsoft.Jet.OLEDB.4.0; " + ("data source=" + myInt + ";" + "Extended Properties=Excel 8.0;")));
OleDbDataAdapter ada = new OleDbDataAdapter("SELECT * FROM [MarkingSheet$]", conn);
DataSet ds = new DataSet();
conn.Open();
ada.Fill(ds.Tables[0]);
conn.Close();
BindingSource bs = new BindingSource();
bs.Datasource = ds.Tables[0];
dataGridView1.DataSource = bs;
}
catch(OledbException x)
{
// Handle Exception
}
编辑**
尝试将连接字符串更改为:-
string connString = "provider=Microsoft.Jet.OLEDB.4.0;Data source=" + myInt + ";Extended Properties=Excel 8.0;HDR=Yes;IMEX=1\";";
什么是
null
,myInt
包含什么?(这个名字暗示了一个int,当然它不起作用)我纠正了它,它是一个指向实际excel文件的路径。我为adapter@Tim Schmelter获取了一个空值。文件是否包含标题列?否。文件中的数据很难解释,其中有几行解释,然后是一些列,其中包含我需要的信息(tbh类似于带表的word文件)。从某些列获取值也可以。我不需要看整个工作表@蒂姆·施梅尔特