1 / 1 / 0
Регистрация: 15.06.2013
Сообщений: 135
1

Не корректно работают запросы

24.01.2016, 14:31. Показов 530. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите найти ошибки , господа

имеется SQL код

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT monster.name_monster AS Name,
       location.name_location AS Location,
       item_weapon.name_item_weapon AS Weapon,
       item_armor.name_item_armor AS Armor,
       item_resurce.name_item AS resurce,
       item_other.name_item_other AS Other_item
      
FROM info_monster INNER JOIN monster ON monster.id_monster= info_monster.id_monster
                  INNER JOIN location ON location.id_location=info_monster.id_location
                  INNER JOIN item_weapon ON item_weapon.id_item_weapon=info_monster.id_item_weapon
                  INNER JOIN item_armor ON item_armor.id_item_armor=info_monster.id_item_armor
                  INNER JOIN item_resurce ON item_resurce.id_item =info_monster.id_item_resurce
                  INNER JOIN item_other ON item_other.id_item_other=info_monster.id_item_other
                  WHERE item_armor.name_item_armor LIKE' Dark Crystal Robe%'  OR location.name_location='Giants Cave';
при создании запроса в SQL server выводится необходимая информация
но когда я кидаю этот запрос в VS
итог нулевой
ничего не выводится

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
   private void button2_Click(object sender, EventArgs e)
        {
            if (checkArmor.Checked == false || checkLocation.Checked == false)
                strOp = " OR ";
            else strOp = " AND ";
            strSQL = " select monster.name_monster as Name, location.name_location as Location, item_weapon.name_item_weapon as Weapon, item_armor.name_item_armor as Armor, item_resurce.name_item as resurce, item_other.name_item_other as Other_item from info_monster inner join monster on monster.id_monster= info_monster.id_monster inner join location on location.id_location=info_monster.id_location inner join item_weapon on item_weapon.id_item_weapon=info_monster.id_item_weapon inner join item_armor on item_armor.id_item_armor=info_monster.id_item_armor inner join item_resurce on item_resurce.id_item =info_monster.id_item_resurce inner join item_other on item_other.id_item_other=info_monster.id_item_other  WHERE item_armor.name_item_armor LIKE' " + textPoiiskArmor.Text + "%' " + strOp + "location.name_location=' " + textPoiskLocation + " '";
 
            if (checkLocation.Checked == true)
                strSQL = " select monster.name_monster as Name, location.name_location as Location, item_weapon.name_item_weapon as Weapon, item_armor.name_item_armor as Armor, item_resurce.name_item as resurce, item_other.name_item_other as Other_item from info_monster inner join monster on monster.id_monster= info_monster.id_monster inner join location on location.id_location=info_monster.id_location  inner join item_weapon on item_weapon.id_item_weapon=info_monster.id_item_weapon  inner join item_armor on item_armor.id_item_armor=info_monster.id_item_armor  inner join item_resurce on item_resurce.id_item =info_monster.id_item_resurce inner join item_other on item_other.id_item_other=info_monster.id_item_other WHERE location.name_location=' " + textPoiskLocation.Text + "' ";
 
            using (cn = new SqlConnection(@"Data Source=HERO;" + "Initial Catalog=LineageII;" + "Integrated Security=True"))
            {
                try
                {
                    cn.Open();
                    SqlCommand cmd = new SqlCommand(strSQL, cn);
                    SqlDataReader rdr = cmd.ExecuteReader();
 
                    DataTable t = new DataTable();
                    t.Load(rdr);
                    dataGridView2.DataSource = t.DefaultView;
                    cn.Close();
 
                }
                catch(SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

так же не удается внести информацию в таблицы применяя данный запрос
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
   private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            using (cn = new SqlConnection(@"Data Source=HERO;" + "Initial Catalog=LineageII;" + "Integrated Security=True"))
            {
                try
                {
                    string strSQL;
                    cn.Open();
                    strSQL = "INSERT INTO monster VALUES (" + textName.Text + "','" + Convert.ToInt32(textLvl.Text) + "','" + Convert.ToInt32(textHP.Text) + ",'" + Convert.ToInt32(textMP.Text) + ",'" + Convert.ToInt32(textEX.Text) + ",'" + Convert.ToInt32(textSP.Text) + ",'" + Convert.ToInt32(textPatk.Text) + ",'" + Convert.ToInt32(textMatk.Text) + ",'" + Convert.ToInt32(textPdef.Text) + ",'" + Convert.ToInt32(textMdef.Text) + ",'" + Convert.ToInt32(textRage.Text) + ",'" + textTypeAtk.Text + ",'" + textRace.Text + ")";
 
                    SqlCommand cmd = new SqlCommand(strSQL, cn);
                    if (cmd.ExecuteNonQuery() == 1)
                        MessageBox.Show("Рейдовый Босс добавлен в Базу данных");
                    cn.Close();
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                this.Close();
                Form1 k = new Form1();
                k.Show();
            }
        }
    }
Добавлено через 52 минуты
с добавлением разобрался
у нас в лабах допустили ошибку

осталось пнятьпочему не работает поиск
не смотря на то , что в SQL server данный запрос работает корректно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2016, 14:31
Ответы с готовыми решениями:

Как работают запросы
Объясните пожалуйста как оно работает? почему при добавлении не удаляет, а добавляет? где идет...

Не работают SQL-запросы к LocalDB
Создал LocalDB, добавил туда таблицу, определение таблицы ниже. CREATE TABLE . ( INT NOT...

Не работают запросы к БД: Отсутствуют данные для строки или столбца
всем привет. подскажите в чем беда. не работают запросы . при запуске выдается ошибка : Отсутствуют...

Как корректно выполнять запросы из VBA?
Напиал простенький код: Sub SetColName() Dim db As Object, rstField As Recordset Dim Field...

6
Эксперт .NET
11486 / 7829 / 1193
Регистрация: 21.01.2016
Сообщений: 29,349
24.01.2016, 18:03 2
Поставь breakpoint на строке, где SqlCommand создаётся и посмотри содержимое переменной strSql - может там в самом запросе пурга сформировалась.
Ещё, насколько я помню, DataTable можно напрямую подсунуть свойству DataSource. Или упаковать его в объект BindingSource как рекомендуется в официальной документации.
0
Эксперт .NET
17216 / 12670 / 3321
Регистрация: 17.09.2011
Сообщений: 20,947
24.01.2016, 18:07 3
Цитата Сообщение от albuk Посмотреть сообщение
C#
1
"location.name_location=' " + textPoiskLocation + " '";
А почему у вас в оригинальном запросе нет пробелов перед и после значения, а в генерируемом запросе — есть?

В оригинале:
SQL
1
location.name_location='Giants Cave';
В коде:
SQL
1
location.name_location=' Giants Cave ';
0
1 / 1 / 0
Регистрация: 15.06.2013
Сообщений: 135
25.01.2016, 01:05  [ТС] 4
потому что оба кода писались отдельно )))
но пробелы вопроса не решили
0
1449 / 1121 / 346
Регистрация: 11.04.2011
Сообщений: 2,621
25.01.2016, 05:15 5
Цитата Сообщение от albuk Посмотреть сообщение
при создании запроса в SQL server выводится необходимая информация
но когда я кидаю этот запрос в VS
Цитата Сообщение от albuk Посмотреть сообщение
потому что оба кода писались отдельно )))
Так отдельно писались эти 2 запроса, или это один запрос?
Вставьте в свой код после формирования запроса строку
C#
1
Clipboard.SetText(strSQL);
После того, как в процессе выполнения вашей программы запрос сформируется, выполните вставку данных из буфера обмена (CTRL+V) в SSMS (или где вы там проверяете работоспособность ваших запросов) и проверьте, какой результат он возвращает. Если возвращаться будет пустой набор данных, то ищите, чем сформированный программой запрос отличается от исходного.
0
1 / 1 / 0
Регистрация: 15.06.2013
Сообщений: 135
25.01.2016, 18:17  [ТС] 6
это один и тот же код
просто была не копипаста , а набор в ручную
вот и опечатки отсюда

спасибо . сейчас попробуем

Добавлено через 7 часов 50 минут
нашел косячек
все заработало
спасибо
0
Эксперт .NET
17216 / 12670 / 3321
Регистрация: 17.09.2011
Сообщений: 20,947
25.01.2016, 18:31 7
Цитата Сообщение от albuk Посмотреть сообщение
нашел косячек
Ну поделитесь хоть находкой, а то народ в нетерпении.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2016, 18:31
Помогаю со студенческими работами здесь

WaitForBytesWritten / bytesAvailable не работают корректно
Имеется класс, обертка над QSerailPort. Он контролирует пришедшие и отправленные данные и еще...

Не корректно работают регулярные выражения
В общем пишу программу для решения квадратных уравнений. Пользователю предоставляется поле для...

Обработчики событий работают не корректно
Вечер добрый коллеги. Есть проблемка с обработкой событий в формах. Имеются две формы Form1 и...

Не корректно работают дрова Realtek
Здравствуйте, обновил до Win 10, и появилась трабла с драйверами для звука, суть в том что мать у...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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