薪资系统的考勤部分需要把卡钟的刷卡数据DBF格式的数据转入到sqlserver的考勤表中,请问用C#该怎么写呀,如果有代码,将万分感谢!!

解决方案 »

  1.   

    http://singlepine.cnblogs.com/articles/264172.html
      

  2.   

    谢谢,小山,用Sql语句可以实现,请问用C#怎么样写呀,有可能第一次导入成功后,再次重新导入,能不能给个例子呀,谢谢[email protected]
      

  3.   

    http://community.csdn.net/Expert/topic/4425/4425511.xml?temp=.331341象这里面一样,构造sql语句,然后执行sql语句就可以了,和正常的sql语句用法是一样的.
    再次重新导入的问题,可以在导入前把刚才导入的删掉,也可以控制不让再次导入,看你需求而定
      

  4.   

    再次谢谢,小山,我把存储过程试了一下,你写的那个,重SQLSERVER导出后再导入出错呀,是不是字段不对呀,能帮看看吗?还没有试dbf格式的,还没通过
      

  5.   

    高手请帮忙呀,我如果取DBF数据库中对应的字段,用C#该怎么写呀
      

  6.   

    我写过一个dbf导入access的例子,sql应该一样的,应该更容易
      

  7.   

    alter PROCEDURE readexceldata 
    @filename varchar(200),       --Excel文件名
    @exceltablename  varchar(20), --EXcel内表名
    @tablename varchar(200)       --将要存在数据库里的表名
    as
       declare @sql varchar(1000)
       set @sql=' insert into '+@tablename+
                ' SELECT * '+
                ' FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source='+@filename+
                ';User ID=Admin;Password=;Extended properties=Excel 5.0'')...['+@exceltablename+'$]'--这里加个$
       print @sql
       exec(@sql)
    go--测试
    --exec readexceldata 'E:\Project\test.xls','sheet1','test'该存储过程我是经过测试了的,我本地没问题,你出现的问题可能是字段对应产生的,你需要逐个对应检查
      

  8.   

    To:小山
    我又测试了一下,两个字段,学历编号,学历.插如了十几条记录可以了,但是我要把Excel中的第一行列标题去掉才可以,字段多了就不行了,20个字段试了一下,查寻出来的记录,列标题顺序不与sql server的列标题顺序相同,插入出错,这样如果要一一对应用SQL语句可以,但通用性就不好了
    再次写信你,这两天就结贴!!1
      

  9.   

    To:小山
    set @sql=' insert into '+@tablename+
                ' SELECT * '+
                ' FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source='+@filename+
                ';User ID=Admin;Password=;Extended properties=Excel 5.0'')...['+@exceltablename+'$]'--
    你select后面的*要是换成指定的字段就可以,要和SQL server的对应才行,如果不指定用*代替的话就不行,在SQL表中调试通不过,用*查寻出来的字段是好像按拼音排列的,字段对不上提示类型不对,望小山指正!!!