Подключение MSSQL с использованием сессии в С#

biryukovm

Client
Регистрация
19.05.2019
Сообщения
147
Благодарностей
10
Баллы
18
Привет всем.
Подскажите может кто уже что то делал подобное, нет случаем ни у кого подобного кода для подключения к MSSQL в сессии для многоптока

У меня сейчас настроено все на MySql (сделал на основе этой статьи) но это не всегда удобно особенно если речь идет о крупном проекте и требуется очень быстро обращение, легче обращаться к локальной машине, да и MySql не подходит для больших многомилионных обработок
 

andrey-ka

Client
Регистрация
03.06.2018
Сообщения
855
Благодарностей
246
Баллы
43
я использую mssql. техника такая же как с mysql.
res = ZennoPoster.Db.ExecuteQuery(
sql,
null,
ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.SqlClient,
connectionString,
fieldSeparator
);
 

biryukovm

Client
Регистрация
19.05.2019
Сообщения
147
Благодарностей
10
Баллы
18
я использую mssql. техника такая же как с mysql.
res = ZennoPoster.Db.ExecuteQuery(
sql,
null,
ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.SqlClient,
connectionString,
fieldSeparator
);
Это больше похоже на подключение через кубик а я про другое что то типа такого
тем более в вашем коде я думаю не смогу развернуть сессию из запросов, а сделать только разовое обращение

C#:
SqlConnection connection = new SqlConnection();
connection.ConnectionString = "Data Source=(local);Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=sasa";
// как вариант для только локального соединения:
//connection.ConnectionString = "Data Source=(LOCAL);Initial Catalog=Table1;Integrated Security=True";
connection.Open();
SqlDataAdapter ColumnA1 = new SqlDataAdapter("SELECT * FROM tab", connection);

DataSet ds = new DataSet();
ColumnA1.Fill(ds, "A1");
foreach(DataRow row in ds.Tables["A1"].Rows){
    return row.ItemArray.ToString();
}
    
    
    
//comboBox1.Items.Add(row.ItemArray.ToString());
connection.Close();
--- Пока это к чему я пришел
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113

biryukovm

Client
Регистрация
19.05.2019
Сообщения
147
Благодарностей
10
Баллы
18
У меня есть уже аналогичное https://zennolab.com/discussion/threads/rabota-s-mysql-v-mnogopotoke-blokirovka-tablic-poluchenie-id-dobavlennoj-zapisi.53728/ работает также радует что используется ссесия в ней


Но как и писал разницу MySql и MS Sql -у них разница в производительности большая так как один работает под серверы вертуальных машин другой под локальные в основе
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113

biryukovm

Client
Регистрация
19.05.2019
Сообщения
147
Благодарностей
10
Баллы
18
У меня связка MS Sql + зеннопостер работала очень не стабильно :ak:, постоянно повреждалась БД, скорей всего по моей вине.
Возможно. Но в вашем случаем рекомендую:
1 - проверить HDD на дефекты ячеек памяти так как MS SQL любит частое перезаписывать
2 - Query Analyzer возможна там найдете проблему в ваших запросах и дерганьях БД надо поймать момент когда ломается БД
3 - проверьте на вирусы мало ли может какой то софт каннектится и все Вам ламает

Вообще по своей практики я более стабильной БД пока не замечал с MS Sql у меня проблем не было, а базы били под гиг 500 и выполнялись в секунды запросы, это на много быстрее чем работать с MySQl
 
  • Спасибо
Реакции: Koqpe

Vavildi

Client
Регистрация
29.02.2016
Сообщения
188
Благодарностей
104
Баллы
43
Раз уж здесь есть тема для mysql, то подскажите люди добрые ответ на следующий вопрос.
Задача простейшая, обновить столбец +1
код примерно такой
UPDATE `counter` SET `counter`=`counter`+1 WHERE `date`="2020-04-22";
Кубик выполняет успешно, но обновления не проходит.
 

biryukovm

Client
Регистрация
19.05.2019
Сообщения
147
Благодарностей
10
Баллы
18
Раз уж здесь есть тема для mysql, то подскажите люди добрые ответ на следующий вопрос.
Задача простейшая, обновить столбец +1
код примерно такой
UPDATE `counter` SET `counter`=`counter`+1 WHERE `date`="2020-04-22";
Кубик выполняет успешно, но обновления не проходит.
SQL запрос у Вас верный по логики но вот вопрос counter относится к параметру AUTO_INCREMENT ? если да то такой вариант не подойдет
 

Vavildi

Client
Регистрация
29.02.2016
Сообщения
188
Благодарностей
104
Баллы
43
SQL запрос у Вас верный по логики но вот вопрос counter относится к параметру AUTO_INCREMENT ? если да то такой вариант не подойдет
Нет. нет. Там не инкремент. Там просто значение тип данных INT
 

biryukovm

Client
Регистрация
19.05.2019
Сообщения
147
Благодарностей
10
Баллы
18
Нет. нет. Там не инкремент. Там просто значение тип данных INT
тогда проблем не вижу, попробуйте выполнить SQL запрос вне программы ZennoPoster как работали до этого, возможно есть ошибка при запросе в столбцах или еще чего
 

Vavildi

Client
Регистрация
29.02.2016
Сообщения
188
Благодарностей
104
Баллы
43
Нашел ошибку, я не передавал параметр, какую таблицу делаем апдейт
UPDATE `counter` SET `counter`=`counter`+1 WHERE `date`="2020-04-22";
а должно быть.
UPDATE `temp_for_update` SET counter=counter+1 WHERE `date`="2020-04-22";
 

biryukovm

Client
Регистрация
19.05.2019
Сообщения
147
Благодарностей
10
Баллы
18
Нашел ошибку, я не передавал параметр, какую таблицу делаем апдейт
UPDATE `counter` SET `counter`=`counter`+1 WHERE `date`="2020-04-22";
а должно быть.
UPDATE `temp_for_update` SET counter=counter+1 WHERE `date`="2020-04-22";
ну вот, а то откуда мы знаем может у Вас и столбик и таблица имеют одно название `counter`
 

andrey-ka

Client
Регистрация
03.06.2018
Сообщения
855
Благодарностей
246
Баллы
43
Раз уж здесь есть тема для mysql, то подскажите люди добрые ответ на следующий вопрос.
Задача простейшая, обновить столбец +1
код примерно такой
UPDATE `counter` SET `counter`=`counter`+1 WHERE `date`="2020-04-22";
Кубик выполняет успешно, но обновления не проходит.
Разве литерал даты задается в двойных кавычках?
 

gpm

Client
Регистрация
20.07.2016
Сообщения
49
Благодарностей
4
Баллы
8

Vavildi

Client
Регистрация
29.02.2016
Сообщения
188
Благодарностей
104
Баллы
43

2276

Client
Регистрация
26.09.2020
Сообщения
11
Благодарностей
0
Баллы
1
Это больше похоже на подключение через кубик а я про другое что то типа такого
тем более в вашем коде я думаю не смогу развернуть сессию из запросов, а сделать только разовое обращение

C#:
SqlConnection connection = new SqlConnection();
connection.ConnectionString = "Data Source=(local);Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=sasa";
// как вариант для только локального соединения:
//connection.ConnectionString = "Data Source=(LOCAL);Initial Catalog=Table1;Integrated Security=True";
connection.Open();
SqlDataAdapter ColumnA1 = new SqlDataAdapter("SELECT * FROM tab", connection);

DataSet ds = new DataSet();
ColumnA1.Fill(ds, "A1");
foreach(DataRow row in ds.Tables["A1"].Rows){
    return row.ItemArray.ToString();
}
  
  
  
//comboBox1.Items.Add(row.ItemArray.ToString());
connection.Close();
--- Пока это к чему я пришел
Доброго времени!
Выдается сообщение namespace 'SqlConnection' could not be found
Похоже чего то недоставлено. Подскажите чего не хватает и где можно скачать. VisualStudio 2019 установлена.
На кабиках ZP сделано подключение к MS SQL, но оно очень медленным оказалось и каждый кубик делает новое подключение. Вижу решение в написании аналогичного кода через кубик на C#. Но вот с подключением что пошло не так...
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)