Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
jos1k
0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 2
1

Не работает выборка типа <pole1> like '%<text>%' or <pole2> like '%<text>%'

06.02.2012, 16:17. Просмотров 922. Ответов 3
Метки нет (Все метки)

прошу прощения за может глупый вопрос, но играюсь уже второй день и не могу понять в чем дело

Пишу прикладную програму на c# VS2010 под MS SQL SERVER 2008
проблема собственно вот в чем ёёкогда пишу запрос вида
SQL
1
SELECT * FROM <tablica> WHERE <pole1> LIKE '%<text>%'
то все отлично выводит
но когда пишу такой запрос
SQL
1
SELECT * FROM <tablica> WHERE <pole1> LIKE '%<text>%' OR <pole2> LIKE '%<text>%'
не выводит ничего,и я незнаю почему так
внизу приведу сам исходный код

C#
1
2
3
4
5
6
7
8
9
10
11
12
da.SelectCommand = new SqlCommand(@"SELECT * FROM Учасники WHERE Прізвище LIKE '%" + textBox9.Text.Trim() + "%' OR Імя LIKE '%" + textBox9.Text.Trim() + "%'", con);
            try
            {
                con.Open();
                da.SelectCommand.ExecuteNonQuery();
                da.Fill(olimpiadaDataSet, "Учасники");
                con.Close();
            }
            catch (System.Exception excep)
            {
                con.Close(); MessageBox.Show(excep.Message);
            }
где da - DataAdapter
con - connectionString
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2012, 16:17
Ответы с готовыми решениями:

результат выборки из БД: rs.next(); String text=rs.getString('text'); <input type=text name=name value=<%=text%>>
Возникла проблема в текстовое поле надо вывести результат выборки из БД rs.next(); String...

Не работает Textbox.Text = "text" в вызванной функции из Handler'a
Установил AddHandler webcontrol.WebView.BeforeRequestLoad, AddressOf BeforeRequestLoad, когда он...

ActiveX Control: Form1.Show bvModal if(Form1.Text1.Text <> '') then UserControl.Text2.Text = Form1.Text1.Text
Имеется проект ActiveX Control, в нем: Form1(имеет Text1, Button1), UserControl1 (имеет Text2,...

Сохранение текста (label.text или textBox.text) для повторного использования
В общем когда пользователь входит необходимо чтоб он авторизовался, а для того чтоб этого не делать...

Как исправить ошибку too many actual parameters-делфи. Строка Edit6.Text, Edit7.Text)
procedure TForm1.Button1Click(Sender: TObject); begin if RadioButton1.Checked then ...

3
_katon_
394 / 248 / 22
Регистрация: 03.10.2011
Сообщений: 1,036
06.02.2012, 16:57 2
Попробуй так:
Создай переменную SQLText string.
в нею запиши свою строку:
C#
1
SQLText = @"SELECT * FROM Учасники WHERE Прізвище LIKE '%" + textBox9.Text.Trim() + "%' OR Імя LIKE '%" + textBox9.Text.Trim() + "%'"
при создания sql команды измени первый параметр следующим образом:
C#
1
new SqlCommand(SQLText , con);
Затем поставь отладчик так, чтобы в SQLText уже что-то было)). Нажми F5 и скопируй содержимое переменной SQLText. Далее запрос из буфера вставляй в Menagment Studio и пытайся его выполнить... Читаешь текст ошибки после выполнения запроса... понимаешь, что напортачил при конкатенации строки в клиенте, исправляешь...
Нажимаешь F5....
И так до победного конца))
0
jos1k
0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 2
06.02.2012, 17:11 3
спасибо за то что отозвались,но увы так не будет, так как этот запрос в Managment Studio выполняеться ! причем правильно!
я пытался сделать хранимой процедурой..эффект тотже..в Managment Studio работает, в Шарпе нет ! =(((

возможно вы подскажите какой нибудь другой способ поиска информации в БД по нескольким полям так чтоб результат можна было вставить в существующий DataSet
0
_katon_
394 / 248 / 22
Регистрация: 03.10.2011
Сообщений: 1,036
06.02.2012, 17:27 4
пример из msdn. Его можно переделать под себя.

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
using System;
using System.Data;
using System.Data.SqlClient;
 
namespace Microsoft.AdoNet.DataSetDemo
{
    class NorthwindDataSet
    {
        static void Main()
        {
            string connectionString = GetConnectionString();
            ConnectToData(connectionString);
        }
 
        private static void ConnectToData(string connectionString)
        {
            //Create a SqlConnection to the Northwind database.
            using (SqlConnection connection =
                       new SqlConnection(connectionString))
            {
                //Create a SqlDataAdapter for the Suppliers table.
                SqlDataAdapter adapter = new SqlDataAdapter();
 
                // A table mapping names the DataTable.
                adapter.TableMappings.Add("Table", "Suppliers");
 
                // Open the connection.
                connection.Open();
                Console.WriteLine("The SqlConnection is open.");
 
                // Create a SqlCommand to retrieve Suppliers data.
                SqlCommand command = new SqlCommand(
                    "SELECT SupplierID, CompanyName FROM dbo.Suppliers;",
                    connection);
                command.CommandType = CommandType.Text;
 
                // Set the SqlDataAdapter's SelectCommand.
                adapter.SelectCommand = command;
 
                // Fill the DataSet.
                DataSet dataSet = new DataSet("Suppliers");
                adapter.Fill(dataSet);
 
                // Create a second Adapter and Command to get
                // the Products table, a child table of Suppliers. 
                SqlDataAdapter productsAdapter = new SqlDataAdapter();
                productsAdapter.TableMappings.Add("Table", "Products");
 
                SqlCommand productsCommand = new SqlCommand(
                    "SELECT ProductID, SupplierID FROM dbo.Products;",
                    connection);
                productsAdapter.SelectCommand = productsCommand;
 
                // Fill the DataSet.
                productsAdapter.Fill(dataSet);
 
                // Close the connection.
                connection.Close();
                Console.WriteLine("The SqlConnection is closed.");
 
                // Create a DataRelation to link the two tables
                // based on the SupplierID.
                DataColumn parentColumn =
                    dataSet.Tables["Suppliers"].Columns["SupplierID"];
                DataColumn childColumn =
                    dataSet.Tables["Products"].Columns["SupplierID"];
                DataRelation relation =
                    new System.Data.DataRelation("SuppliersProducts",
                    parentColumn, childColumn);
                dataSet.Relations.Add(relation);
                Console.WriteLine(
                    "The {0} DataRelation has been created.",
                    relation.RelationName);
            }
        }
 
        static private string GetConnectionString()
        {
            // To avoid storing the connection string in your code, 
            // you can retrieve it from a configuration file.
            return "Data Source=(local);Initial Catalog=Northwind;"
                + "Integrated Security=SSPI";
        }
    }
}
Если изучить этот пример то можно понять как заполняется датасет (а точнее таблицу, поскольку датасет представляет из себя набор объектов хранящихся в оперативной памяти).
0
06.02.2012, 17:27
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2012, 17:27

Суммирование textbox1.text и textbox2.text, начиная с конца
procedure Form1.button3_Click(sender: Object; e: EventArgs); var s,s1:string; i1,i2:integer;...

Как сделать, чтобы из НД-считалось поле пол в edit1.Text и edit2.Text количество полов?
Здравствуйте, как мне сделать что бы из НД-считала поле пол в edit1.text и edit2.text количество...

Synapse отправка писемю.Почти получилось, но увы в конце Edit6.Text, Edit7.text) выдает ошибку
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.