Excel oledb连接方式提问

lqs0112 2009-02-10 02:42:12
我采用oledb连接方式访问Excel,只能从Excel表中简单地取出一个表的全部数据,如:select * from [sheet$]。请问:如何给语句设置查询条件,另外,如何进行插入、更新等操作?
...全文
125 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
春天的气息 2009-02-10
  • 打赏
  • 举报
回复
修改字段、增、删、改记录等操作需要针对cell,操作的语句就用sql。
特别 2009-02-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lqs0112 的回复:]
这个我可以得到,但是我想像数据库读取一样,分组或者按条件查询。
如:我想按Excel表中的id列分组,在sql语句后面加上group by id(列名)就报错了。
[/Quote]
如果加上列名报错的话,可以试着将列为用[]界定起来,例如[id]
一般来讲,EXCEL只要用ADO连接上,操作基本上与操作SQL相同,可以新建表、修改字段、
增、删、改记录等操作。
j45kp 2009-02-10
  • 打赏
  • 举报
回复
//获取全部数据
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FileName +"\\" + timeFlag + ".xls" + ";" + @"Extended Properties=""Excel 8.0;HDR=Yes;""";

OleDbConnection conn = new OleDbConnection(strConn);

OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;

conn.Open();
string sqlStr = "insert into [Sheet4$] values (";
strCom = "CREATE TABLE [Sheet4]( ";
for (int k = 0; k < ds.Tables[0].Columns.Count ; k++)
{
if (value == "BU")
{
if (ds.Tables[0].Columns[k].Caption != "Datasource" && ds.Tables[0].Columns[k].Caption != "Server" && ds.Tables[0].Columns[k].Caption != "Country" && ds.Tables[0].Columns[k].Caption != "Engineer" && ds.Tables[0].Columns[k].Caption != "Reply")
{
sqlStr += "@" + ds.Tables[0].Columns[k].Caption + ",";
strCom += "[" + ds.Tables[0].Columns[k].Caption + "] ntext , ";
}
}
else
{
sqlStr += "@" + ds.Tables[0].Columns[k].Caption + ",";
strCom += "[" + ds.Tables[0].Columns[k].Caption + "] ntext, ";
}
}
sqlStr += "@" + "RawDataDesc" + "";
strCom += "[" + "RawDataDesc" + "] char";
sqlStr += ")";
strCom += ") ";

cmd.CommandText = strCom;

cmd.ExecuteNonQuery();

OleDbCommand rcmd = new OleDbCommand();
rcmd.Connection = conn;
rcmd.CommandText = sqlStr;
rcmd.CommandType = CommandType.Text;
lqs0112 2009-02-10
  • 打赏
  • 举报
回复
这个我可以得到,但是我想像数据库读取一样,分组或者按条件查询。
如:我想按Excel表中的id列分组,在sql语句后面加上group by id(列名)就报错了。
j45kp 2009-02-10
  • 打赏
  • 举报
回复
http://www.diybl.com/course/4_webprogram/asp.net/netjs/2008917/143216.html
j45kp 2009-02-10
  • 打赏
  • 举报
回复
string strCon;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/Files/Employee.xls") + ";Extended Properties=Excel 8.0;";
OleDbConnection con = new OleDbConnection(strCon);
OleDbDataAdapter da = new OleDbDataAdapter("select * from [Employee$]", con);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧