当前位置:编程学习 > C#/ASP.NET >>

我是刚才卖老婆的,我求解。。。求解啊。。。

遇到了一个问题,很郁闷
将excel表里面的东西导入到sql2000。
数据库的结构
用户表: user_id user_name dpt_id
部门表:dpt_id dpt_name

excel的结构是这样的:
部门 用户
研发 张三
研发 张三
客服 李四
 大家看到了,excel的数据是冗余的,我要将其导入到sql2000的亮个表里,怎么搞呢?
并且还要保证部门和用户相互对应。。。希望各位高手给个答案...
还有别的办法可以搞定吗??
救命啊。。。 --------------------编程问答-------------------- 先把部门 distinct的导入
然后 导入用户的时候 分析  对应部门在部门表的 id 导入... --------------------编程问答--------------------
引用 1 楼 jijunwu 的回复:
先把部门 distinct的导入
然后 导入用户的时候 分析 对应部门在部门表的 id 导入...


大神,我的excel分为 sheet1 sheet2 sheet3  而这三个里面都有部门列,我已经把sheet3 的部门导入到部门表了,但是sheet3里面的部门 在 sheet1,sheet2 里面都有重复,怎么办啊。。。

help me,,,, --------------------编程问答-------------------- 可以把部门全部取出来  很好解决的 看数据库 存在就不放
--------------------编程问答-------------------- 晕,这么多贴

先在你excel里添加一个id列,数据从1,2,3,4,5...n,并保存excel
然后打开sqlserver2000,选择导入数据,从excel导入到sqlserver,你可以导到一个新建的表里,假设叫tblExcel

然后在通过下面sql语句删除tblExcel里的重复数据(即你说的冗余数据)

delete from     
          tblExcel  A     
  where     
          exists(select   1   from   tblExcel Where   部门=A.部门 AND 用户=A.用户   and   ID>A.ID)



然后你再把tblExcel拆分成两个表
--部门表
insert into 部门表 select ID AS dpt_id,部门 AS dpt_name from tblExcel
delete from 部门表 A where exists(select 1 from 部门表 where dpt_name=a.dpt_name and dpt_id>a.dpt_id)

--用户表
insert into 用户表 select ID AS user_id,用户名 AS User_name, 部门表.dpt_id AS dpt_id
from tblexcel join 部门表 on tblexcel.部门=部门表.dpt_name
--------------------编程问答--------------------
引用 4 楼 gxingmin 的回复:
晕,这么多贴

先在你excel里添加一个id列,数据从1,2,3,4,5...n,并保存excel
然后打开sqlserver2000,选择导入数据,从excel导入到sqlserver,你可以导到一个新建的表里,假设叫tblExcel

然后在通过下面sql语句删除tblExcel里的重复数据(即你说的冗余数据)


SQL code
delete from     
  ……

大神,我似乎有些明白您的旨意啦。不过这中间还是有一些小问题,就是如何将excel的内容全部导入到一个表里呢?我在sql2000工具->数据转换->导入,然后不知道该怎么弄了。。。您赐教啊。。您用您最淡定的,最犹豫的语言再帮我一次把。。阿门,上帝与你同在。。 --------------------编程问答-------------------- 连老婆都卖的人。。。。。
居然有人帮你。。。。。 --------------------编程问答--------------------
引用 6 楼 foren_whb 的回复:
连老婆都卖的人。。。。。
居然有人帮你。。。。。

老大,你不是吧。。我那是为了强调我强烈需要帮助的夸张口气。。囧。
我被你雷到~~~ --------------------编程问答-------------------- 哈哈,顶...... --------------------编程问答-------------------- 帮顶。。。 --------------------编程问答-------------------- 通过sql也可以读取execl
SELECT * into #tmp1
FROM OpenDataSource('MICROSOFT.JET.OLEDB.4.0','User ID=Admin;Password=;Data Source=你的execl路径;Extended Properties=''Excel 8.0;HDR=Yes;IMEX=1''')...sheet1$

类似这样插入到临时表#tmp1,把你这个工作区间的都读取出来,这一个表中使用DISTINCT 排除相同的 ,
然后执行你的操作。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,