有一个TXT文件,数据使用制表符分隔的,格式如下1 2011 102 100.00
2 2011 10203 110.00
通过下面的方法来导入ACCESS一个已经建好的表里面,但是我通过ACCESS自带的文本导入功能,可以正常导入,可当我把导入格式保存,用下面的代码导入时,就会出现 导入数据库时,数据进入了不同的字段,变成1 2011 102 100.00
2 2011 102 03110.00请问怎么解决呢?using System;using System.IO;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using System.Diagnostics;using Access = Microsoft.Office.Interop.Access;using Accessibility; namespace Routingtesten{ public partial class TxttoAccess : Form { public TxttoAccess() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { txttoaccess(); } public void txttoaccess()//这个已调试好,每秒能导入4万条左右 { Access.ApplicationClass oAccess = new Access.ApplicationClass(); oAccess.Visible = true; DateTime dts = DateTime.Now; textBox1.Text = dts.ToLongTimeString(); try { //ACCESS11: oAccess.OpenCurrentDatabase("E:\\fjxxm\\routingtesten2\\Routingtabellen2003.mdb", false, ""); //导入excel //oAccess.DoCmd.TransferSpreadsheet(Access.AcDataTransferType.acImportDelim,Access.AcSpreadSheetType.acSpreadsheetTypeExcel11,"工作表名","d:\\wcf.xls",true,null,null); //导入txt oAccess.DoCmd.TransferText(Access.AcTextTransferType.acImportFixed, "txttoaccessfmt4", "txttoaccess1", "E:\\fjxxm\\routingtesten2\\testen1.asc", false, "", 0); oAccess.CloseCurrentDatabase(); oAccess.DoCmd.Quit(Access.AcQuitOption.acQuitSaveNone ); System.Runtime.InteropServices.Marshal.ReleaseComObject (oAccess); oAccess = null; DateTime dt = DateTime.Now; textBox2.Text = dt.ToLongTimeString(); TimeSpan ts = DateTime.Now - dts; textBox3.Text = ts.TotalMilliseconds.ToString ()+"毫秒"; MessageBox.Show("导入成功"); } catch(Exception ex) { MessageBox.Show(ex.ToString()); } finally { GC.Collect(); } }}}
2 2011 10203 110.00
通过下面的方法来导入ACCESS一个已经建好的表里面,但是我通过ACCESS自带的文本导入功能,可以正常导入,可当我把导入格式保存,用下面的代码导入时,就会出现 导入数据库时,数据进入了不同的字段,变成1 2011 102 100.00
2 2011 102 03110.00请问怎么解决呢?using System;using System.IO;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using System.Diagnostics;using Access = Microsoft.Office.Interop.Access;using Accessibility; namespace Routingtesten{ public partial class TxttoAccess : Form { public TxttoAccess() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { txttoaccess(); } public void txttoaccess()//这个已调试好,每秒能导入4万条左右 { Access.ApplicationClass oAccess = new Access.ApplicationClass(); oAccess.Visible = true; DateTime dts = DateTime.Now; textBox1.Text = dts.ToLongTimeString(); try { //ACCESS11: oAccess.OpenCurrentDatabase("E:\\fjxxm\\routingtesten2\\Routingtabellen2003.mdb", false, ""); //导入excel //oAccess.DoCmd.TransferSpreadsheet(Access.AcDataTransferType.acImportDelim,Access.AcSpreadSheetType.acSpreadsheetTypeExcel11,"工作表名","d:\\wcf.xls",true,null,null); //导入txt oAccess.DoCmd.TransferText(Access.AcTextTransferType.acImportFixed, "txttoaccessfmt4", "txttoaccess1", "E:\\fjxxm\\routingtesten2\\testen1.asc", false, "", 0); oAccess.CloseCurrentDatabase(); oAccess.DoCmd.Quit(Access.AcQuitOption.acQuitSaveNone ); System.Runtime.InteropServices.Marshal.ReleaseComObject (oAccess); oAccess = null; DateTime dt = DateTime.Now; textBox2.Text = dt.ToLongTimeString(); TimeSpan ts = DateTime.Now - dts; textBox3.Text = ts.TotalMilliseconds.ToString ()+"毫秒"; MessageBox.Show("导入成功"); } catch(Exception ex) { MessageBox.Show(ex.ToString()); } finally { GC.Collect(); } }}}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货