Что делать, чтобы избежать округления десятичной дроби в SqlBulkCopy с C# на SQL Server?C#

Место общения программистов C#
Ответить
Anonymous
 Что делать, чтобы избежать округления десятичной дроби в SqlBulkCopy с C# на SQL Server?

Сообщение Anonymous »

Я импортирую данные файла .csv в таблицу SQL Server с помощью SqlBulkCopy. Мой файл .csv может иметь любой формат, поскольку я не могу определить столбцы в нем, а типы данных в нем, поскольку тот же столбец может иметь десятичные и текстовые значения, поэтому мне нужно передать значение как таковое в файл . csv файл. Но по какой-то причине в некоторых десятичных точках файлов .csv происходит округление.

Код: Выделить всё

DataTable csvData = new DataTable();
StreamReader streamreader = new StreamReader(apsrcfile);
string Headline = File.ReadLines(Csvfilepath).ElementAt(0);|
string[] Headerline = Headline.Split(',');
for (int i = 0; i < Headerline.Length; i++)
{
csvData.Columns.Add();
}
string[] lines = File.ReadAllLines(csvfilepath);
foreach (string line in lines)
{
string[] col = line.Split(',');
}
csvData.Rows.Add(col);
streamreader.Dispose();

SqlConnection objConn = new SqlConnection(ConfigurationManager.ConnectionStrings["Live"].ConnectionString);
objConn.Open();

SqlBulkCopy objbulkinsert = new SqlBulkCopy(objConn);
objbulkinsert.DestinationTableName = "Mappingtable";

foreach (DataColumn column in csvData.Columns)
{
objbulkinsert.ColumnMappings.Add(column.ColumnName.ToString(), column.ColumnName.ToString());
}

objbulkinsert.BulkCopyTimeout = 0;
objbulkinsert.WriteToServer(csvData);
objConn.Close();

Это работает и для других файлов. Я не знаю, является ли файл .csv проблемой, но, открыв его в блокноте, он показывает десятичную точку. Я прикреплю изображение файла .csv и полученный результат SQL.
Изображение

Изображение

Ожидаемый результат: например, данные файла .CSV в таблице SQL Server.

Подробнее здесь: https://stackoverflow.com/questions/792 ... o-sql-serv
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»