我有一个txt文件,这里有一些示例数据:
Id,PriceOne,Company,PriceTwo,PriceThree
11,15.3599997,Japan ltd,12.23,3.1777777
12,,Koyoto ltd,,0
13,86.25,New Wor,-1289519.44,2536.1245627
......
我使用这个commandText将txt文件的数据读入datatable:
string connString = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq="
+ filePath + ";Extensions=asc,csv,tab,txt;";
try
{
using (OdbcConnection odbcConn = new OdbcConnection(connString))
{
odbcConn.Open();
OdbcCommand oleComm = new OdbcCommand();
oleComm.Connection = odbcConn;
oleComm.CommandText = string.Empty;
if (fileName.ToLower().Contains("fairvalue"))
oleComm.CommandText = "select * from [" + fileName + "#txt]";
else
oleComm.CommandText = "select * from [" + fileName + "#csv]";
OdbcDataAdapter adapter = new OdbcDataAdapter(oleComm);
DataSet ds = new DataSet();
adapter.Fill(ds, fileName);
return ds.Tables[0];
}
}
但是当我调试数据表时,我得到了如下的结果:
Id PriceOne Company PriceTwo PriceThree
11 15.3599997 Japan ltd 12 3
12 Koyoto ltd 0
13 86.25 New Wor -1289519 2536
......
我不知道为什么PriceTwo列和PriceThree列的值被更改为INT,那么,PriceOne列的值是对的?
有人能帮帮我吗? THX。
答案 0 :(得分:1)
检查具有什么数据类型的两列中的数据库表([priceHistory #txt])。 它必须是int数据类型。
更改" PriceTwo"的数据类型和 PriceThree"从整数到十进制(18,2)
它会正常工作。
Id PriceOne Company PriceTwo (should be decimal) PriceThree (should be decimal)
11 15.3599997 Japan ltd 12 3
12 Koyoto ltd 0
13 86.25 New Wor -1289519 253
检查并告诉我。