c excel连接mysql数据库_C语言连接Excel数据库

一、问题的提出

在ASP编程中会遇到很多大大小小的难题,我有一次为一家书店设计网站的时候就遇到了一个这样的难题。起初使用Access做数据库,该数据库主要是为了保存书店内图书的信息,但是当记录的条目过多时数据库的体积将会变得很大。在实际的应用中,网站的空间是有限的,很多要建设网站的客户都没有自己的主机,网站的空间是向网站空间提供商花钱购买而来的,这就要求在网站空间一定的条件下,尽量减小网站内文件的体积。于是我选择了Excel做数据库。二、方法与说明

将Excel文件(例如book.xls)看成一个数据库,其中的每一个工作表(sheet)看成数据库表。假设Excel中的第一行为字段名,所以你定义的范围中必须要包括第一行的内容。

Excel中的行标题(即字段名)不能够包含数字。Excel的驱动在遇到这种问题时就会出错(例如你的行标题名为“F1”)。如果你的Excel中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常处理这一行的数据,你必须要保证该列的数据类型一致。

使用Excel做数据库在添加数据的时候可以在本地机上使用Microsoft

Excel进行编辑。书商们在做图书数据的时候往往都是从各大出版社下载所需的图书信息,这些图书信息都有固定的格式,书商把下载的数据通过复制、粘贴等方法大批量的添加到Excel数据库中。做好数据后将Excel数据库上传到网站。这种方法有以下优点:快速、方便和易操作。

访问数据库信息的第一步是和数据库源建立连接。

-----------------------------------------------------------------转载---------------------------------------------------------------------------------------

C语言连接:

下载CSpreadSheet.h文件在

使用介绍:http://www.oschina.net/question/76782_12420

基本用例:http://zhidao.baidu.com/link?url=g5Pg1IxCHOzL8Uuwcnq2LhfvEpBKQ4ySudk-JefNkNJB340S_b_5NGOIe-X168K0Yf1pIoA0LTyntihPb5xO8K

java连接(动态构造连接字符串):

69c5a8ac3fa60e0848d784a6dd461da6.pngString url="jdbc:odbc:Driver=Microsoft Excel Driver (*.xls);DBQ=C:/Users/dajun/Desktop/EXcel/book.xls";

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//通过sun.jdbc.odbc.JdbcOdbcDriver来获取数据 Connection conn =DriverManager.getConnection(url);

Statement sta=conn.createStatement();

ResultSet rs= sta.executeQuery("Select * from [Sheet" + 1 + "$]");

ResultSetMetaData rsmeta=rs.getMetaData();int numberOfColumns =rsmeta.getColumnCount();while(rs.next())

{for(int i = 1; i <= numberOfColumns; i++)

{

System.out.print(rs.getString(i));

}

}

rs.close();

sta.close();

conn.close();

}

69c5a8ac3fa60e0848d784a6dd461da6.png

asp编程(动态构造连接字符串):

69c5a8ac3fa60e0848d784a6dd461da6.png查询并显示表Sheet1字段为书名的代码:

DimConn,Driver,DBPath,Rs‘建立Connection对象

SetConn=Server.CreateObject("ADODB.Connection")

Driver= "Driver={Microsoft Excel Driver (*.xls)};"DBPath= "DBQ=" &Server.MapPath("book.xls")‘调用Open 方法打开数据库

Conn.Open Driver&DBPath‘DSN连接方式‘Conn.Open "Dsn=book"‘注意 表名一定要以下边这种格试 "[表名$]" 书写

Sql="Select * From [Sheet1$]"

SetRs=Conn.Execute(Sql)IFRs.EofAndRs.BofThenResponse.write"没有找到您需要的数据!!"

Else

Do While NotRs.EOF

Response.write Rs("书名")

Response.write"
"Rs.MoveNextLoop

End IFRs.CloseSetRs=nothingConn.CloseSetConn=Nothing

%>查询并显示表Sheet1全部内容的代码:

DimConn,Driver,DBPath,RsSetConn=Server.CreateObject("ADODB.Connection")

Driver= "Driver={Microsoft Excel Driver (*.xls)};"DBPath= "DBQ=" &Server.MapPath("book.xls")

Conn.Open Driver&DBPathSetRs=Server.CreateObject("ADODB.Recordset")

Sql="select * from [Sheet1$]"Rs.Open Sql,conn,2,2

%>

fori=0 toRs.Fields.Count-1

%>

next

%>

do while NotRs.EOF%>

fori=0 toRs.Fields.Count-1

%>

next

%>

%>

69c5a8ac3fa60e0848d784a6dd461da6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值