Почему данные в datatable конвертируются в тип INT - PullRequest
1 голос
/ 10 февраля 2012

У меня есть текстовый файл, вот некоторые примеры данных:

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 верно?

Может ли кто-нибудь мне помочь? ТНХ.

1 Ответ

1 голос
/ 10 февраля 2012

проверьте таблицу базы данных ([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

проверь и дай мне знать.

...