要上传一个Excel到数据库的表中,其中一列“城市代码”要换成数据库中表CityHouse的“城市编号”

例如,Excel中数据如下,第一ID,第二列为“城市名称”内有“北京”,“天津”等城市,第三列“访问日期”。数据库表CityHouse中的字段有“城市名称”,“城市编号”,表中存有所有城市及其对应城市编号。现在要将Excel中的所有数据存到表Dis中,但表Dis中没有字段“城市名称”,取代的是与“城市名称”相应的“城市编号”。如何操作?求高手!!!在线等!Dis表中字段如下:“ID”,“城市编号”,“访问日期”。
数据库是MS SQL server2005,用的语言是VB。NET;不是在Excel中进行处理,是把Excel中的数据上传到数据库中的表中。CityHouse和DIs都是SQL数据库表。

第1个回答  2012-01-20
问题没咋看懂,你的数据库是什么的数据库?是全部在Excel里处理还是怎样?

不知我的理解有木有错误,你是要给表Dis中的“城市编号”加入对应的“城市名称”,对吧?
假设全部在Excel里处理好了。首先要做几个准备工作:
1、每个“城市编号”与“城市名称”对应的Excel;
2、表Dis (废话= =)

假设表1是包含所有“城市编号”对应的“城市名称”的。其中,列A是“城市编号”,列B是“城市名称”。
表2是只有“城市编号”的,木有“城市名称”。其中,列A是“城市编号”。
那现在我们要做的就是把“城市编号”对应的城市名称填到表2里,对吧?
假设表2第一行是标题,数据从第二行开始。然后在表2的B2单元格里输入
=VLOOKUP(A2,[表1]Sheet1!$A:$B,2,0)
之后往下拖就好了。
我给你解释一下这个公式括号里的参数:
A2 是两个表中都具有的唯一的那个数字,可以让我们从这个数字找到对应的“城市名称”
[表1]Sheet1!$A:$B 是需要查找的范围,以列为单位,寻找的那一列作为第一列,返回值作为最后一列。
2 是返回哪一列的值,我们从A列开始查找,返回B列,即是返回A:B的第二列的值
0 是指精确查找

有何不懂可以在私信我。在线中……
第2个回答  2012-01-20
你想将EXCEL的数据存到DIS中,
你肯定要在程序中遍历EXCEL的每一行了,你定义三个变量
CITYNAME ->存EXCEL当前行城市
使用SQL语句将按当前变量到CITYHOUSE表中打到对应的ID
将找到的ID存到CITYID中。
DATE->存访问日期
将CITYID及DATE INSERT到DIS表中.追问

"使用SQL语句将按当前变量到CITYHOUSE表中打到对应的ID"这个怎么用.net语句实现?

第3个回答  2012-01-20
用函数vlookup就能搞定。
在第一个表“城市名称”旁加一块空白列,输入公式“=lookup(鼠标点本worksheet本行的城市名称,CityHouse城市名称和城市编号两列全选,2,false)
本行即显示城市名称对应的编号
第4个回答  2012-01-18
搞到城市与编号的对应表,先处理你的excel表,用查找函数把城市换成编号,然后再导入
第5个回答  2012-01-30
不知道你做到哪一步了,关于数据库的操作你可以看看OleDbDataAdapter的用法
相似回答