Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
3 / 3 / 6
Регистрация: 31.05.2014
Сообщений: 177

Конвертировать CSV ANSI в CSV UTF-8 или шо делать

13.06.2016, 20:23. Показов 5922. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, есть проблема, импортирую данные из CSV в mssql через Винформс, все хорошо инсертится если CSV файл открыть блокнотом и изменить кодировку в UTF-8 но если оставить как есть то русские символы импортируются ????? или ??? но в ромбиках, испробовал уже все что находил, нифига не помогает.
Вот код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
        private void btnBrowse_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog(); ofd.DefaultExt = ".csv"; ofd.Filter = "Comma Separated (*.csv)|*.csv"; ofd.ShowDialog(); txtFileName.Text = ofd.FileName;
        }
 
        private void btnimport_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
 
            DataTable imported_data = GetDataFromFile();
 
            if (imported_data == null)
                return;
 
            SaveImportDataToDatabase(imported_data);
 
            MessageBox.Show("load data succ.....!"); txtFileName.Text = string.Empty;
 
            Cursor = Cursors.Default;
        }
        private DataTable GetDataFromFile()
        {
            DataTable importedData = new DataTable();
 
            try
            {
                using (StreamReader sr = new StreamReader(txtFileName.Text))
                {
                    
                    string header = sr.ReadLine();
 
                    if (string.IsNullOrEmpty(header))
                    {
                        MessageBox.Show("no file data");
                        return null;
                    }
 
                    string[] headerColumns = header.Split(';');
 
                    foreach (string headerColumn in headerColumns)
                    {
                        importedData.Columns.Add(headerColumn);
                    }
 
                    while (!sr.EndOfStream)
                    {
                        string line = sr.ReadLine();
 
                        if (string.IsNullOrEmpty(line))
                            continue;
 
                        string[] fields = line.Split(';');
 
                        
                        DataRow importedRow = importedData.NewRow();
 
                        for (int i = 0; i < fields.Count(); i++)
                        {
                            importedRow[i] = fields[i];
                        }
 
                        importedData.Rows.Add(importedRow);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("the file could not be read:");
                Console.WriteLine(e.Message);
            }
 
            return importedData;
        }
 
        private void SaveImportDataToDatabase(DataTable imported_data)
        {
            using (SqlConnection conn = new SqlConnection("Data Source=******;Initial Catalog=******;Integrated Security=True"))
            {
                conn.Open();
 
                foreach (DataRow importRow in imported_data.Rows)
                {
                    SqlCommand cmd = new SqlCommand("INSERT INTO shift (truck, shiftcode, capacityKg, capacityPal, datework, trailer, driver, subcontractor, comment) " +
                                                    "VALUES (@truck, @shiftcode, @capacityKg, @capacityPal, @datework, @trailer, @driver, @subcontractor, @comment)", conn); 
                    
                    cmd.Parameters.AddWithValue("@datework", importRow["datework"]); 
                    cmd.Parameters.AddWithValue("@truck", importRow["truck"]); 
                    cmd.Parameters.AddWithValue("@shiftcode", importRow["shiftcode"]); 
                    cmd.Parameters.AddWithValue("@capacityKg", importRow["capacityKg"]); 
                    cmd.Parameters.AddWithValue("@capacityPal", importRow["capacityPal"]); 
                    cmd.Parameters.AddWithValue("@trailer", importRow["trailer"]); 
 
                   // cmd.Parameters.AddWithValue("@driver", importRow["driver"]); 
                    cmd.Parameters.AddWithValue("@subcontractor", importRow["subcontractor"]); 
                    cmd.Parameters.AddWithValue("@comment", importRow["comment"]); 
                    cmd.ExecuteNonQuery();
                }
            }
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.06.2016, 20:23
Ответы с готовыми решениями:

Кодировка файла csv полученного в ANSI в UTF-8
Имеется скрипт который из файла csv добавляет данные в mysql. база у меня в UTF-8 и если файл импортируется с кодировкой UTF-8 то все...

Конвертировать Utf 16 в Ansi
Есть у кого предложения по конвертации utf_16 в ansi? Написанный мною индуский код не устраивает. Функция: const String...

Чтение данных из Excel в файл csv в кодировке ANSI
Добрый день, Форумчане. Есть ли у кого инфа как сохранять данные считываемые из экселя в файл csv в формате ANSI. Стандартное сохранение...

2
140 / 133 / 88
Регистрация: 18.05.2013
Сообщений: 399
13.06.2016, 23:31
Yourasik, при чтении из файла указывайте кодировку, используя соответствующий конструктор класса StreamReader. Скорее всего, кодировка должна быть ANSI (1251).
1
3 / 3 / 6
Регистрация: 31.05.2014
Сообщений: 177
14.06.2016, 09:36  [ТС]
atoi, кодировка и стоит ANSI по умолчанию, но при импорте такого файла русские символы импортируются ????, если CSV файл изменить в блокноте на UTF8 все норм.

Добавлено через 17 минут
atoi, спасибо Вам большое, все получилось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.06.2016, 09:36
Помогаю со студенческими работами здесь

Конвертировать из .xlsx в .csv
Здравствуйте! Возможно ли файл с расширением .xlsx преобразовать в файл с расширением .csv? В программе реализован модуль с обработкой...

Конвертировать многоуровневый json в csv
Добрый день. Коллеги, помогите решить задачу: есть данные в формате json - очень много вложенных обьектов, массивов обьектов и пр. Мне...

Конвертировать файла CSV в LDIF
Всем доброго времени суток! Нужна программа для конвертирование с CSV в LDIF под Windows. В Гугле не нашел.

PDF(c данными CSV) конвертировать на Excel
имеется PDF файл с данными CSV(внутри Chekbox и т.д) как можно конвертировать полностью на Excel файл, помогите пожалуйста! вот файл:

Как конвертировать файл dot в csv
Нужно постоянно подводить файл dot в формат импорта в сайт csv. Как это можно сделать у кого какие предложения, желательно что бы как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru