MFC 使用ADO读取sqlserver2000数据库 还能使用ADO 操作excel吗

MFC使用ADO读取sqlserver2000数据库在某个CPP文件里有读取sql2000的代码,还能添加ADO操作excel的代码吗?我使用DDBC操作excel后报错... MFC 使用ADO读取sqlserver2000数据库 在某个CPP文件里有读取sql2000的代码,还能添加ADO操作excel的代码吗? 我使用DDBC操作excel后报错 无法链接到数据库,求例子 展开
 我来答
jadilee
推荐于2016-11-29 · TA获得超过472个赞
知道小有建树答主
回答量:475
采纳率:40%
帮助的人:199万
展开全部
把excel当做数据库,做个连接就可以操作了
如用ado方法:在delphi中加入adoconnection控件,双击后选择jet 4.0 ole db,在连接页中
选择数据库的名字(.xls),再双击全部(all)页中的Extended Properties,在value中
填入Excel 8.0,OK!
在控件ADODataSet1的CommandText属性中选择了select * from Sheet1$后,别忘了在
Sheet1$的两边加上中括号[],否则出现“FROM子句语法错误”。或者用ADOQuery1控件:在
它的SQL属性中写入:select * from [Sheet1$]。

======================================
送你个实例:
今天刚写个这方面的程序段,贴出来,你做下修改
//open excel
procedure TForm1.ConnectClick(Sender: TObject);
var
str,path,xlsName:string;
begin
//connect excel
path:=extractfilepath(application.exename);
OpenDialog1.InitialDir :=path;
OpenDialog1.Filter :='*.xls|*.xls';
if OpenDialog1.Execute then
xlsName :=extractfilename(OpenDialog1.FileName);

str:='Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source= ' + path + xlsName + ';Extended Properties=Excel 8.0;' +
'Persist Security Info=False';
conn.Close;
conn.ConnectionString :=str;
try
conn.Connected :=true;
Adotable1.Close;
Adotable1.TableDirect:=True ;
adotable1.tablename:='sheet1$';
tType.ItemIndex :=-1;
try
adotable1.Open;
dbgrid1.Columns[0].Width :=50;
dbgrid1.Columns[1].Width :=50;
dbgrid1.Columns[2].Width :=50;
dbgrid1.Columns[3].Width :=80;
dbgrid1.Columns[4].Width :=80;
dbgrid1.Columns[5].Width :=200;
except
showmessage('Open Error');
end;
except
self.Caption :='Excel connect error';
exit;
end;

end;

//导入,我使用批处理,adoquery1.locktype->ltBatchOptimistic
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from tablename where 0=1');
ADOQuery1.Open;

ADOTable1.First;
while not ADOTable1.Eof do
begin
ADOQuery1.Append;
ADOQuery1.FieldByName('xx').AsString :=trim(Adotable1.fieldbyname('yy').AsString );
//和上句相同,相应字段数据导入即可
ADOQuery1.Post;
ADOTable1.Next;
end;
ADOQuery1.UpdateBatch();
showmessage('over');

----------------------------
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
INSERT INTO urtable
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')
---------------------------
ADOConnection 指向excel, 用Jet4.0 ,Extended properties设为Excel 8.0
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
--------------------------------------------------
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\temp\b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式