txt文件中有三个字段, userno,telephone,mobile.(有空格分开的)现在要把它导入到UserInfo的表中,如何实现啊?我试过把txt文件通过File.copy另存为xls文件,但运行的时候最是有"外部表的格式不正确"错误.请高手们帮帮忙啊!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    你可以把Sql数据库里面的某一个表导出到文本文件中,看看它的格式是什么,而后你把你的txt文件的格式修改成你导出的那个例子那样的,而后导入进去。
      

  2.   

    如果是用空格分开的话可能会出问题,因为如果你的某条记录的资料中有空格怎么判断,如没有空格,只有本身字段相互隔开有空格的话,推荐你使用 File 对象,它可以通过读取文本文本的内容,然后你再用截取字符串的方式找出各字段的内容再 insert 到数据库当中。
      

  3.   

    这个文本文件是别的系统给的,我不能修改的.而且我导入数据的过程是写在windows服务中的,每天都导一遍,是自动导入的.
      

  4.   

    class read
        {
            public static void Main()
            {
                try
                {
                    OleDbConnection cn = new OleDbConnection();
                    string ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=c:\\file\\data.mdb";
                    cn.ConnectionString = ConnStr;
                    cn.Open();                OleDbCommand cmd = new OleDbCommand();
                    StreamReader sr = new StreamReader("c:\\file\\file.txt", System.Text.Encoding.Default);
                    String line;                while ((line = sr.ReadLine()) != null)
                    {
                        string[] arrStr = line.Split('\\');
                        string a, b, c, d;
                        a = arrStr[0].ToString();
                        b = arrStr[2].ToString();
                        c = arrStr[4].ToString();
                        d = arrStr[6].ToString();                    cmd.CommandText = "insert into tt (a,b,c,d) VALUES ('" + a + "','" + b + "','" + c + "','" + d + "')";
                        cmd.Connection = cn;
                        cmd.ExecuteNonQuery();                    
                    }
                    Console.WriteLine("成功!");
                    cn.Close();
                    sr.Close();
                }
                catch
                {
                    Console.WriteLine("失败!");
                }
            }
        }
      

  5.   

    谢谢zlp886(雨人阿呆),一旦成功马上给分.
      

  6.   

    把200万条数据一次导入sqlserver中,如果使用普通的insert语句进行写出的话,恐怕没个把小时完不成任务具体的一个语句我们可以这样写:alter database taxiset RECOVERY BULK_LOGGED BULK INSERT taxi..detail FROM 'e:\out.txt'WITH (?? DATAFILETYPE = 'char',?? FIELDTERMINATOR = ',',?? ROWTERMINATOR = '\n',?TABLOCK)alter database taxiset RECOVERY FULL这个语句将从e:\out.txt导出数据文件到数据库taxi的detail表中。祝你成功!