导入“;0000〃;或“;0030”;进入DataTable

本文关键字:进入 DataTable 0030 0000 导入 | 更新日期: 2023-09-27 17:58:17

我正在从文本文件中导入0000000 200230034这样的值。但是,该表将它们显示为0、2、23、34。有人知道它为什么去掉前导零吗?

这是我的代码:

private DataTable ImportTabFile()
{
    string dataSourcePath = @"C:'Documents and Settings'agordon'Desktop";
    string dataFileName = "ACTIVITYEX.txt";
    string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dataSourcePath + @";Extended Properties=""text;HDR=No;FMT=Delimited""";
    OleDbConnection conn = new OleDbConnection(connString);
    OleDbCommand cmd = conn.CreateCommand();
    cmd.CommandText = String.Format("SELECT * FROM [{0}]", dataFileName);
    DataSet ds = new DataSet();
    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    da.Fill(ds);
    return ds.Tables[0];
}

如何在导入过程中保留前导零?

以下是我的模式文件:

[ACTIVITYEX.txt]
Format=TabDelimited
ColNameHeader=False
Col13=ErrorCode Text

导入“;0000〃;或“;0030”;进入DataTable

JET将根据第一行推断类型。它可能推断出您的字段是INT,因为0000可以转换为数字。如上所述,前导零是无用的。

可以使用schema.ini显式定义列类型。如以上注释所述,您需要根据文档指定每一列:

必须通过数字指定每列,并指定固定长度文件的列名、数据类型和宽度

或者,本文提供了一些关于控制如何推断类型的信息。