myRange1 是当前要调用工作簿的名字 === 可以直接这么写么? 我记得好像要这样写的 SELECT * FROM [$myRange1]
//SELECT * FROM [$myRange1]SELECT * FROM [myRange1$] ;)
我是把连接分配给适配器来查询的,适配器会自动关闭连接的. 我试过用SELECT * FROM [$myRange1] 与 myRange1 效果一样
如果用 excel 11.0的话直接会报 '找不到可安装的 ISAM'这个问题
适配器会自动关闭连接的?????? 那个单引号我看错了... SELECT * FROM [myRange1$] $是在后面的不是在前面吧..
'myRange1$' 不是一个有效名称适配器会自动关闭连接,可以查一下呀
zsybob: 是不是没有绑定到表这是什么意思呀,能再解释清楚点不
Excel 8.0 应该是97 9.0是2000 11才是2003
我的可以读出来 using System; using System.Collections.Generic; using System.Text; using System.Data.OleDb; using System.Data;namespace test { public class Class2 { public static void dosth() { ///连接字符 string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + ("d:\\1.xls") + ";" + "Extended Properties='Excel 8.0;'"; ///数据库连接 OleDbConnection con = new OleDbConnection(sConnectionString); con.Open(); ///查询 using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", con)) { DataTable dt = new DataTable(); da.Fill(dt); if (dt.Rows.Count > 0) { ///这里的行数始终为0 } } con.Close(); } } }
myRange1 是当前要调用工作簿的名字
===
可以直接这么写么?
我记得好像要这样写的
SELECT * FROM [$myRange1]
;)
我试过用SELECT * FROM [$myRange1] 与 myRange1 效果一样
'找不到可安装的 ISAM'这个问题
那个单引号我看错了...
SELECT * FROM [myRange1$] $是在后面的不是在前面吧..
是不是没有绑定到表这是什么意思呀,能再解释清楚点不
9.0是2000
11才是2003
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Data;namespace test
{
public class Class2
{
public static void dosth()
{
///连接字符
string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + ("d:\\1.xls") + ";" +
"Extended Properties='Excel 8.0;'"; ///数据库连接
OleDbConnection con = new OleDbConnection(sConnectionString);
con.Open();
///查询
using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", con))
{
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
///这里的行数始终为0
}
} con.Close();
} }
}
{
///这里的行数始终为4
}
去掉单引号就行
"Extended Properties='Excel 8.0;'";
去掉单引号就行