程序要实现的功能是将文本文件中重复的数据剔出,结果保留成另一个文本文件。
偶是用数据源作的,部分代码:
string ConnectionString; 
string SQLString; 
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path.GetDirectoryName(srcFilePath) + ";Extended Properties=\"Text;HDR=no;FMT=Delimited\""; 
SQLString = "Insert Into [" + Path.GetFileNameWithoutExtension(dstFilePath) + "] Select mobile From " + Path.GetFileName(srcFilePath) + " Group By mobile "; 
System.Data.OleDb.OleDbConnection ConnectionText = new System.Data.OleDb.OleDbConnection(); 
ConnectionText.ConnectionString = ConnectionString; 
ConnectionText.Open(); 
System.Data.OleDb.OleDbDataAdapter AdapterText = new System.Data.OleDb.OleDbDataAdapter(SQLString, ConnectionText); 
AdapterText.Fill(DataSetText, "TextFile"); 
myDataTable = DataSetText.Tables[0];调试的时候提示出错“无法找到表0”,但是目的文件已经完成写入,数据也正确,难道哪里还有错误?

解决方案 »

  1.   

    自己改好了
    myDataTable = DataSetText.Tables["TextFile"];就OK了但是有个新问题,这样生成的数据会多出双引号,如原来是123,新的文本里会变成“123”。这个双引号该怎么去掉啊
      

  2.   

    string str = "123";
    str = str.Trim('"');//只删除开头和结尾的",推荐
    或者
    str = str.Replace("\"", "");//删除所有的",看情况
      

  3.   

    To fancyf:
    替换的话要对每一条数据都替换,偶经常要处理一些10+M的文本,这样的话会很慢的说。继续问:
    下面哪个生成新数据文本的方法效率高一些:
    1.如上面代码那样通过insert查询数据并生成新的文本。
    2.select出数据结果以后,用StreamWriter一条条写到文本里面去。
      

  4.   

    我没做测试
    不过我认为更有效率的办法是自己按行读文件,并借一个hashtable来判断是否重复,然后自己写文件oledb处理文本数据库效率不是很高