Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Npgsql.npgsqlexception: INSERT содержит больше выражений, чем целевых колонок Есть аддон под кад систему, который получает габариты детали и дальше должен записать габариты детали в БД. //метод записи в бд. private void AddtoDb(double coords,string folder,string name) { try { https://www.cyberforum.ru/ ado-net/ thread1360774.html C# Выборка строк таблицы с возвратом в собственную MDI-форму
Приветствую. Есть приложение с MDI формами и база *.accdb, а также пара кнопок. Так как я в Visual C# полный новичок, мне необходима ваша помощь. Необходимо, чтобы по клику создавалась MDI форма с Grid в ней и по SQL запросу делалась выборка с возвратом в Grid. Запрос я уже создал в самом MS ACCESS, но как это сделать программно не представляю. Подскажите, как это осуществить? А может удобнее...
C# Как в SharpDevelop подключить SQLite? https://www.cyberforum.ru/ ado-net/ thread1360549.html
Всем привет. Подскажите, пожалуйста, как в SharpDevelop подключить SQLite? Желательно подробно или литературу на подключение. Не могу разобраться.
C# Перебор значений в таблице и сравнение с другой https://www.cyberforum.ru/ ado-net/ thread1360315.html
Здравствуйте. Нужна помощь. есть таблица в БД Oracle tabl с полями dat, otpravitel, poluchatel, jurnal и есть таблица tabl2 с полями dat, otpravitel и polucjatel, jurna причем dat имеет формат '01.01.2015 14:20' я знаю как просто вывести на экран значения static void Main(string args) { table.Columns.Add("jurnal", typeof(string)); _oracleConnection.Open();
C# База данных в интернете
Всем привет, подскажите пожалуйста как создать базу данных в интернете, что бы к нему имели доступ сразу несколько пользователей . И как установит связь с ним в приложениях c#. При много благодарен !!!
C# Работа с БД (проверка структуры) https://www.cyberforum.ru/ ado-net/ thread1360231.html
Суть в том, что ENtityFramework может сверять структуру бд, с той что у него в xml-ках(db.Database.CompatibleWithModel(false)), есть ли что-то подобное без EF, реализованное уже? Или придется писать подобное руками?
C# Составление запроса ORDER BY CHAR_LENGHT Не могу составить запрос правильно, проблема в синтаксисе. Help me please)) List<Form1.Brand> Brands = new List<Form1.Brand>(); string query = "SELECT BrandName, Logo, Description FROM Brand ORDER BY CHAR_LENGTH(BrandName)"; OleDbCommand command = new OleDbCommand(query, Form1.connection); Form1.connection.Open(); OleDbDataReader reader =... https://www.cyberforum.ru/ ado-net/ thread1360224.html Выборка из нескольких таблиц C#
Здравствуйте! Столкнулся с непониманием, как составить запрос для выборки данных из нескольких таблиц. Имеется 6 таблиц Student, status, spetial, falultet, departament, course. В таблицу student внесены данные о студенты и указаны ID статуса, специальности и пр. как составить так чтобы в datagridview он писал не id а брал название из другой таблици и подставлял его и выводил это все не вида :...
C# Синхронизация баз данных https://www.cyberforum.ru/ ado-net/ thread1360119.html
Вводная. Есть программа, использующая базу данных Access. Программой пользуются 3 человека - 2 оператора и начальник. Во всех случаях база данных хранится локально, каждый человек работает за отдельной машиной. Задача - синхронизация базы данных. Моя единственная идея - использовать для синхронизации файла бд сервис наподобие дропбокса. Сначала я думал о сохранении бд при каждом изменении и...
C# Создание таблиц бд Доброго времени суток ! Вопрос такой у меня есть таблица со странами (имя и id) Мне нужно создать таблицу которая будет включать в себя несколько стран, то есть создавать пачки из стран. После создания пачки стан нужно записать id пачки в 3 таблицу Я не могу понять как создать правильно таблицу пачки и связи. Спасибо ! https://www.cyberforum.ru/ ado-net/ thread1359942.html
Denwer не выводит данные C#
MySqlDataReader reader = null; string constr = "SERVER=localhost;" + "DATABASE=users;" + "User=root;" + "Password= ;"; MySqlConnection mycon; mycon = new MySqlConnection(constr); mycon.Open(); string sql = "select *...
C# Как реализовать таблицу, данные для заполнения которой содержатся в бд mssql https://www.cyberforum.ru/ ado-net/ thread1359783.html
Какие образом можно реализовать заполнение связанными друг с другом данными, которые содержатся в 11 таблицах бд. В столбец слева должны вытаскиваться из таблицы все помещения в здании, а в строку сверху все устройства, которые установлены. И после заполнить количеством устройств в месте пересечения определенного помещения и установленного в нем устройства. Конечный вид таблицы прикреплен.
0 / 0 / 0
Регистрация: 24.01.2015
Сообщений: 13
0

Вставка большого объема информации в базу данных MySQL - C# - Ответ 7144608

24.01.2015, 16:50. Показов 2752. Ответов 8
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!!!

Друзья помогите разобраться, я написал программу сам, но не очень разбираюсь и не совсем понимаю правильно ли она работает...

Сама программа работает но мне кажется там с циклом, что то не то и он по несколько раз выполняет операции.

Моя задача такова, взять большой файл:
C#
1
2
3
4
5
6
7
8
9
        public static IEnumerable read_file;
        public static IEnumerator line_list;
 
        public static Queue<Exception> exceptions = new Queue<Exception>();
 
        // ....
 
        read_file = File.ReadLines(file_name);
        line_list = read_file.GetEnumerator();
(пример содержания файла)
1
2
3
4
a
b
c
d
e
f
// допустим 150 000 000 строк

Разные переменные

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        public static int str_file_count, insert_count;
 
        public static int str_count; 
 
        public static string current_table; // текущая таблица
 
        // вывод на экран определяется случайно функцией Rand (от, до)
        public static int min; // минимальное кол-во. записей 
        public static int max;  // максимальное кол-во. записей
 
        public static string file_name, file_line, md5_file_line;
 
        public static int rand;
 
        public static bool pause_query;
Random
C#
1
2
3
4
5
6
7
8
9
10
        public static readonly Random getrandom = new Random();
        public static readonly object syncLock = new object();
 
        public static int GetRandomNumber(int min, int max)
        {
            lock (syncLock)
            {
                return getrandom.Next(min, max);
            }
        }
Далее запустить цикл в отдельном потоке


C#
1
2
3
4
               
 
        Thread thread = new Thread(MySQL_insert_method);
        thread.Start();
В цикле нужно брать каждую строку формировать для нее MD5 хеш ЗАТЕМ брать первые 2 символа хеша от строки и делать INSERT в базу данных MySQL например базу данных test, в таблицу MD5[первые два символа строки]

Пример Таблица MD503 хеш 031c3b4d65501a9a3aa8c9b37af442bf = 000313

В итоге мы имеем 256 таблиц MD5

Вот код моего цикла

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
        private void MySQL_insert_method()
        {
            while (true)
            {
                try
                {
                    lock (line_list)
                    {
                        if (line_list.MoveNext())
                        {
                            file_line = line_list.Current as string;
                        }
                        else
                        {
                            Settings.mysql_connect.Close();
                            Console.ReadLine();
                            break;
                        }
                    }
 
                    md5_file_line = StringHash.GetMD5Hash(MySqlHelper.EscapeString(file_line));
                    current_table = md5_file_line.Substring(0, 2);
 
                    try
                    {
                        if (pause_query == false)
                        {
 
                            Query.Insert("MD5" + current_table, file_line, md5_file_line);
 
                            insert_count++;
                            str_count++;
 
                            if (str_count > rand)
                            {
                                ConsoleWrite("[+] STR: " + md5_file_line + ":" + file_line, 7, 0);
                                ConsoleWrite("[+] INSERTED STRING TO: [MD5" + current_table + "] [COUNT: " + insert_count + "]", 9, 0);
 
                                str_count = 0;
                            }
                        }
                    }
                    catch (Exception exceptions)
                    {
                        StreamWriter WriteErrorlog = new StreamWriter("log\\" + DateTime.Now.ToString(@"MM\.dd\.yyyy") + "\\error.log", true);
                        WriteErrorlog.Write(DateTime.Now.ToString("HH:mm:ss") + ": [-] " + exceptions + "\r\n");
                        WriteErrorlog.Close();
                        break;
                    }
                }
                catch (ThreadAbortException)
                {
                    break;
                }
                catch (Exception exceptions)
                {
                    StreamWriter WriteErrorlog = new StreamWriter("log\\" + DateTime.Now.ToString(@"MM\.dd\.yyyy") + "\\error.log", true);
                    WriteErrorlog.Write(DateTime.Now.ToString("HH:mm:ss") + ": [-] " + exceptions + "\r\n");
                    WriteErrorlog.Close();
                    break;
                }
            }
        }
Как можно оптимизировать, ускорить код?) рассмотри все предложения
LOAD DATA IN FILE не предлагать использовать в место INSERT
Я бы рассмотрел примерчик групповой вставки INSERT так как не знаю как это сделать я просто не представляю даже...

Запрос в базу
C#
1
2
3
4
5
6
7
        public static void Insert(string table, string colum1, string colum2)
        {
            int sql_query_execute;
 
            MySqlCommand insert_command = new MySqlCommand("insert ignore into " + table + " (text, md5hash) values ('" + MySqlHelper.EscapeString(colum1) + "', '" + colum2 + "')", Settings.mysql_connect);
            sql_query_execute = insert_command.ExecuteNonQuery();
        }

Генератор MD5

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    public static class StringHash
    {
        static readonly char[] HexChars = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
        static readonly MD5 md5 = MD5.Create();
        static readonly Encoding UTF8 = Encoding.UTF8;
 
        static public string GetMD5Hash(string S)
        {
            byte[] B = md5.ComputeHash(UTF8.GetBytes(S));
            char[] ar = new char[B.Length * 2];
 
            int Index = 0;
            foreach (byte bv in B)
            {
                ar[Index++] = HexChars[bv >> 4];
                ar[Index++] = HexChars[bv & 0xF];
            }
 
            return new string(ar);
        }
    }


Вернуться к обсуждению:
Вставка большого объема информации в базу данных MySQL C#
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2015, 16:50
Готовые ответы и решения:

Добавление большого объема данных в mysql
Здравствуйте! Мне нужно добавить большой объем текста в mysql через обычное поле input типа file в...

Скажется ли на производительности загрузка большого объема данных из БД MySQL в DGV
Добрый вечер, господа. Ситуация следующая: есть datagridview, отображающая данные, и бд mysql,...

Вставка большого объема текста
Стоит задача вставить большое кол-во текста на форму(8 страниц a4). Причем в тексте есть еще...

Вставка записи в базу данных. MySQL
Есть база данных, в которой есть таблицы categories, которая имеет структуру(см. Рис.1) и таблица...

8
24.01.2015, 16:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2015, 16:50
Помогаю со студенческими работами здесь

Выгрузка из БД большого объема информации
Всем привет. По сути дела сейчас делаю некий журнал активности для личного кабинета ... ...

Импорт большого объема информации из txt файла
Добрый день, уважаемые форумчане! В общем дело обстоит так. Имеется txt фаил с более чем 24000...

зависания при записи большого объема информации на хард
Жёсткий диск WDC WD15EARS-00MVWB0 ATA Device Windows 7 x64 зависает при...

Какой компонент подойдет для ввода текстовой информации (большого объема)?
Здравствуйте! Подскажите, какой взять компонент для ввода текстовой информации (большого объема) ?

Постраничное разбиение большого объема текста PHP+MYSQL
Доброго времени суток. В БД хранится множество статей разного объема. При просмотре любая статья...

Экспорт данных большого объёма
Есть дамп таблицы размером примерно 500 мегабайт. Пытаюсь залить его с помощью phpMyAdmin. Нажимаю...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru