1、使用C#开发一个程序,实现数据从Access迁移到MsSQL,要求是能定义数据源及目标数据库的字段的映射关系
2、使用C#开发一个程序,实现将10万个手机号码将错误的手机号码过滤掉重复的,错误的我是菜鸟 请各位大侠说详细点 源代码或相应的开发思想都可以的

解决方案 »

  1.   

        这个不难,烦一点而已。
    1、c# 连接 Access 和 SQL都方便的很,
       在界面中列出 Access 和 SQL的所有字段,供用户选择,确定对应关系 ,这个最简单的用两个listbox就行了,实现上下移,添加和删除功能。最终确立需要移动哪些字段,以及对应的关系。
       在Access中找出所需字段,用DataReader就可以。因为有可能插入的只是SQL中的部分字段,向SQL中更新时可能也没什么捷径,最差也可以用N条插入命令,但可以将所有插入命令放在一起,最后一次执行。2、这不是C#问题,这是SQL。重复的在SQL中使用distinct,你查下。
       所谓错误的,要看你具体需要了,不过你可以查下正则表达式,没有你不能过滤掉的东西。
      

  2.   

    你也可以全部把数据导入sql
    在对sql进行排重,
    sql语句是这样的delete from biaoming where id not in(select max(id) from biaoming group by ziduanming order by desc having count(*)>0)
      

  3.   

    1.两个Box让用户选择字段映射关系,服务端用DataReader读数据后赋值到MSSQL数据对象,用SqlBulkCopy对象快速插入数据
    2.C# 正则表达式:
    //正则根据需要自己去改下
    HashSet<string> hs = new HashSet<string>();
    Regex reg = new Regex(@"^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])\d{8}$").Matches(inputStr).Cast<Match>().ToList().ForEach( m=>
        hs.Add(m.Value)  //存进去自动过滤重复
    );
    //hs中就是所有有效的手机号码了
      

  4.   

    按照你的方法我实现了正确的验证手机号 我是这样写的 
                string s = "0";
                s = this.txtAdd.Text.Trim();
                Regex d=new Regex(@"^(13[0-9]|14[7]|15[0|1|2|3|5|6|7|8|9]|18[0|2|5|6|7|8|9])\d{8}$");
    你写的后面没看懂能不能在详细点啊 嘿嘿