现在又.txt的文件,里面有 两列数据(每行有许多行),全是数字的 怎么把它读到数据库的表里,两行数据对应两个字段,最好不要导到excel里了,那样有点麻烦,求各位大牛帮忙!!

解决方案 »

  1.   

    HDR=YES     的时候,第一行被认为是字段名   
      HDR=NO       的时候,第一行被认为是数据   
            
      select   *   from     
      OPENROWSET('MICROSOFT.JET.OLEDB.4.0'   
      ,'Text;HDR=NO;DATABASE=C:\'   --c:\是目录  
      ,Surveys#txt)--aa#txt是文本文件名aa.txt
      

  2.   

      一楼的做法我没用过,我一般的做法是,写一个程序,把txt文本一行一行读取,逐条插入数据库
      重要的一点是,你要让你的txt文本里面的数据有规律可循
      

  3.   

    /** 导入文本文件 */
    EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword' /** 导出文本文件 */
    EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword' 
    或 
    EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword' /**导出到TXT文本,用逗号分开*/ 
    exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password' 
    BULK INSERT 库名..表名 
    FROM 'c:\test.txt' 
    WITH ( 
    FIELDTERMINATOR = ';', 
    ROWTERMINATOR = '\n' 
      

  4.   


    有没有程序实现的啊 大家看下  这段代码哪错了 private void button1_Click(object sender, EventArgs e)
            {
                 SqlConnection  conn = new SqlConnection ("server=localhost;database=Chartimages;uid=sa;pwd=1234");
                SqlTransaction  tran = null;
                try
                {
                    //把TXT文本转换为datatable
                    string sql = string.Format("select * from [Text;Database={0}].{1}", "D:\\shuju.txt", "shuju.txt");
                    DataTable dt = new DataTable();
                   SqlDataAdapter  sda = new SqlDataAdapter (sql, conn);
                   sda.Fill(dt);
                    if (dt == null)
                    {
                        MessageBox.Show("您导入的文档名字有误!请去掉空格或特殊字符!");
                        return;
                    }                //去掉空行
             for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        if (dt.Rows[i][0].ToString().Trim() == string.Empty)
                        {
                            dt.Rows.Remove(dt.Rows[i--]);
                        }
                    }
                    //事务开始
                        tran = conn.BeginTransaction();
                        SqlCommand  cmd = conn.CreateCommand();
                        cmd.Transaction = tran;
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            string[] str=dt.Rows[i][0].ToString().Split (' ');//用空格区分你的三列
                         
                            string sql_insert = string.Format("insert into shuju (data1,data2) values ('{0}','{1}')", str[0],str[1]);
                            cmd.CommandText = sql_insert;
                            cmd.ExecuteNonQuery();
                        }
                        tran.Commit();
                        MessageBox.Show("导入成功!");
                    }
                                   
                catch
                {
                    MessageBox.Show("导入失败!");
                    //tran.Rollback();
                }
                finally
                {
                    conn.Dispose();
                }        }
      

  5.   

    1。如果是几个文件,不需要一定用程序来做,可以用sqlserer里面的导出数据完成。不过格式需要手动改成只有纯数据的内容,数据格一定一样的,这个用起来很方便,前提是数据表要存在。
    2.把txt数据读取到缓存中,C#中可以利用OLEDBAdapter 对象。然后对象.upata(缓存表)到数据库,前提是要把缓存表的数据格式好,数据表也要存在