Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2015, 17:05   #1
nelo_001
Пользователь
 
Регистрация: 14.01.2013
Сообщений: 58
По умолчанию SQL Поиск оптимизация

Добрый день , помогите доработать код , чтобы выводил результат в гривью.

Код:
SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\Database1.mdf;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
Кнопка1
Код:
    da.SelectCommand = new SqlCommand("SELECT * FROM [FROMBD] WHERE [Las] ='" + toolStripTextBox1.Text + "'", con);
ГридВью как был каменным так камнем и остался ниче не поменялось
nelo_001 вне форума Ответить с цитированием
Старый 28.10.2015, 17:35   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут оптимизация? Оптимизация это когда все работает, но надо эффективнее.


Не увидел ничего связанного с GridView в этом коде.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.10.2015, 17:47   #3
nelo_001
Пользователь
 
Регистрация: 14.01.2013
Сообщений: 58
По умолчанию

еще раз доделал.
//
Код:
  DataTable dt = new DataTable();
Код:
            da.SelectCommand = new SqlCommand("SELECT * FROM [FROMBD] WHERE [Las] like" + toolStripTextBox1.Text,con);
            da.Fill(dt);
            tableDataGridView.DataSource = dt;
Ругается на 2 строчку:

Цитата:
Необработанное исключение типа "System.Data.SqlClient.SqlException " в System.Data.dll

Дополнительные сведения: An expression of non-boolean type specified in a context where a condition is expected, near 'likeячс'.
nelo_001 вне форума Ответить с цитированием
Старый 28.10.2015, 17:54   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну видимо в SQL запросе ошибка, наверно пробел после like пропущен, и может быть кавычки.

Вообще не надо так писать запросы конкатенацией строк, используйте prepared statement
https://en.wikipedia.org/wiki/Prepar...t#C.23_ADO.NET
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.10.2015, 18:04   #5
nelo_001
Пользователь
 
Регистрация: 14.01.2013
Сообщений: 58
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну видимо в SQL запросе ошибка, наверно пробел после like пропущен, и может быть кавычки.

Вообще не надо так писать запросы конкатенацией строк, используйте prepared statement
https://en.wikipedia.org/wiki/Prepar...t#C.23_ADO.NET
мне кажется так гораздо проще ?
// ещераз изменил код

Код:
            da.SelectCommand = new SqlCommand("SELECT * FROM [SuperBD] WHERE [Las] = '" + toolStripTextBox1.Text + "'", con);
         
            
            da.Fill(dt);
            tableDataGridView.DataSource = dt;
теперь оно не дает ошибки а дает пустой гридвью

// насчет Prepared statement, мастера ado.net разве не пишут так как я ?
nelo_001 вне форума Ответить с цитированием
Старый 28.10.2015, 18:16   #6
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Так пишут только подмастерья, мастера все сугубо на параметрах и хранимых процедурах
come-on вне форума Ответить с цитированием
Старый 28.10.2015, 18:20   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну по ссылке выше ж написано чем оно лучше. Например, про SQL инъекции злых хацкеров.
Да и просто удобнее так, сложнее запутаться в кавычках и т.п., конвертации типов к нужному виду.

А про пустой, ну видимо ничего нет по этому запросу. Попробуйте выполнить его в СУБД без своей программы.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 28.10.2015 в 18:45.
Alex11223 вне форума Ответить с цитированием
Старый 28.10.2015, 18:39   #8
nelo_001
Пользователь
 
Регистрация: 14.01.2013
Сообщений: 58
По умолчанию

Ясно ! Нашел в чем ошибка ! все работает ! очень смешная ошибка , проекту без году 5 минут , а уже имеет 2 бд ! Я сам в душе не чаю откуда 2 бд , но да ладно ...
// уважаемый мастер , можете кусочек кода, или статью на более широкое обьяснения про prepared statement.
Снимок.PNG
nelo_001 вне форума Ответить с цитированием
Старый 28.10.2015, 19:21   #9
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Это на картинке 2 бд? это 2 балицы в одной бд
come-on вне форума Ответить с цитированием
Старый 29.10.2015, 13:13   #10
nelo_001
Пользователь
 
Регистрация: 14.01.2013
Сообщений: 58
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
Это на картинке 2 бд? это 2 балицы в одной бд
да .... издержки времени .....
nelo_001 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация запроса sql Seregakz SQL, базы данных 8 21.02.2015 07:15
Поиск SQL Ol'ga SQL, базы данных 0 28.10.2014 12:20
оптимизация sql-запроса Vetra SQL, базы данных 0 20.07.2011 13:36
Оптимизация SQL запроса Phantom SQL, базы данных 4 24.09.2009 16:07
Оптимизация sql запроса в хп eda SQL, базы данных 3 28.07.2009 11:57