Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/135: Рейтинг темы: голосов - 135, средняя оценка - 4.64
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236

Интеграция SQL запроса в код на C#

24.04.2012, 13:01. Показов 27958. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, подскажите или киньте ссылок, что бы почитать про вставку SQL запроса в код на C#. Google ничего толкового не выдал. Запросы простенькие с оператором SELECT, а вот как вставить?
Есть пример вот такой который я уже пытался запихнуть в проект, но не получилось:
C#
1
2
3
4
5
6
7
8
9
10
OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source =  база данных.mdb");
var search = textBox2.Text;
string query = "SELECT * FROM БД_МИ WHERE (clearnedText LIKE '%" + search + "%')";
DataTable DT = new DataTable("БД_МИ");
connection.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(search, connection);
база_данныхDataSet.Tables.Add(DT);
adapter.Fill(база_данныхDataSet.Tables["БД_МИ"]);
бДМИBindingSource = new BindingSource(база_данныхDataSet, "БД_МИ");
connection.Close();
и неужели такой здоровый кусок кода нужен для каждого запроса?
Спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2012, 13:01
Ответы с готовыми решениями:

Преобразовать код SQL запроса из Delphi в C++
Нужно проста преобразовать цикле в Делфи в формате С++, немного сам по шарил то что знал внизу написано ADOQuery1.Close; ...

Как изменить код для вывода SQL запроса
Подскажите пожалуйста, как можно изменить вот этот код для того что бы данные брались не с DBGrid а с SQL запроса. var i,j, index:...

Интеграция в sql
Привет! Мои наработки во вложении. Хочу получить следующее: в первое окошко вбиваешь номер договора, во второе определенную дату, после...

12
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
24.04.2012, 14:00
во-первых seach.ToString() или просто объявите переменную как string.
во-вторых https://www.cyberforum.ru/ado-... 82279.html
в-третих можно релизовать свой класс со своими методами, которые и земенят "такой большой" кусок кода.
напрм:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private DataTable GetFilteredBd_Mi(string search)
{
     DataTable DT = new DataTable("БД_МИ");
using(OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source =  база данных.mdb"))
{     
     string query = "SELECT * FROM БД_МИ WHERE (clearnedText LIKE '%" + search + "%')";
     connection.Open();
     OleDbDataAdapter adapter = new OleDbDataAdapter(search, connection);
     adapter.Fill(база_данныхDataSet.Tables["БД_МИ"]);
     бДМИBindingSource = new BindingSource(база_данныхDataSet, "БД_МИ");
     connection.Close();
}
return DT;
}
0
 Аватар для Midnayt
59 / 59 / 7
Регистрация: 07.12.2009
Сообщений: 324
24.04.2012, 14:40
C#
1
2
3
4
5
6
7
8
9
10
11
OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source =  база данных.mdb");
string search = textBox2.Text;
string query = "SELECT * FROM БД_МИ WHERE (clearnedText LIKE '%" + search + "%')";
DataTable DT = new DataTable("БД_МИ");
connection.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
база_данныхDataSet.Tables.Add(DT);
adapter.Fill(база_данныхDataSet,"БД_МИ");
бДМИBindingSource = new BindingSource(база_данныхDataSet, "БД_МИ");
dataGridView1.DataSource = бДМИBindingSource;
connection.Close();
Если ты хочешь несколько даных лутше выводи в dataGridView1

Пиши какие возникают ошибки. Этот код загоняем в процедуру и указываем просто таблицу и запрос (query) у меня два таких кода в процедурах один для вывода в dataGridView второй для вывода в textbox
1
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
24.04.2012, 17:42  [ТС]
Midnayt, весь код который в топике,я использую для поиска по БД, когда вбиваю текст для поиска выпадает исключительная ситуация след. вида:
Ошибочная инструкция SQL; предполагалось 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' или 'UPDATE'.
на строчке
C#
1
adapter.Fill(база_данныхDataSet.Tables["БД_МИ"]);
А когда вставляю твой код, то на этой же строчке выпадает такая искл. ситуация как:
Ядру СУБД Microsoft Access не удается найти входную таблицу или запрос "БД_МИ". Убедитесь, что объект существует, а его имя указано правильно.

Добавлено через 5 минут
Learx, когда использую твой код тоже вылетает искл. ситуация на той же строке такого вида:
Значение не может быть неопределенным.
Имя параметра: dataTable

Что не так в это строке?
1
 Аватар для Midnayt
59 / 59 / 7
Регистрация: 07.12.2009
Сообщений: 324
24.04.2012, 18:29
Код который я преложыл тебе в предыдущей теме не подходит потому что если найдётса несколько значений в бд то выдаст ошибку потому что ты пытаешся вывести в textbox используй код для выдачи в DataGridView в этой теме. И ещё одно какая у тебя студия ?? И лучше таблицу не называть через "_-/?+*\" и т д а просто текстом и цифрами.
1
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
24.04.2012, 18:50  [ТС]
Я просто тот код взял за основу, т.к. думал работать с запросом нужно именно через такой код.
Цитата Сообщение от Midnayt Посмотреть сообщение
если найдётса несколько значений в бд то выдаст ошибку потому что ты пытаешся вывести в textbox используй код для выдачи в DataGridView в этой теме
тогда я вообще запутался, где здесь в этой теме хоть в одном коде есть вывод либо в textBox, либо в dataGridView

Вижла у меня 2008. Про имена таблиц теперь буду знать, спасибо.
0
 Аватар для Midnayt
59 / 59 / 7
Регистрация: 07.12.2009
Сообщений: 324
24.04.2012, 20:12
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
 
namespace MyBD
{
    public partial class Form1 : Form
    {
        OleDbConnection connection;
        OleDbDataAdapter adapter;
        DataSet dataSet;
        BindingSource bindingSource;
        DataTable DT;
        string Tb;
        public Form1()
        {
            InitializeComponent();
            connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= Mybd.mdb");
            dataSet = new DataSet();
        }
 
        private void button1_Click(object sender, EventArgs e)  // Открыть БД и искать
        {
            Load_table("SELECT * FROM Table1 WHERE (Name LIKE '%" + textBox1.Text + "%')");
        }
        private void Load_table(string str)
        {
            DataTable DT = new DataTable("Table1");
            connection.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter(str, connection);
            dataSet.Tables.Add(DT);
            adapter.Fill(dataSet, "Table1");
            bindingSource = new BindingSource(dataSet, "Table1");
            dataGridView1.DataSource = bindingSource;
            connection.Close();
        }
 
        private void button2_Click(object sender, EventArgs e)    // Просто открыть БД 
        {
            Load_table("SELECT * FROM Table1 ");
            dataSet.Tables.Clear();
        }
    }
}
У меня 2010 студия (рекомендую) но код должен работать в 2008 просто перепешы.
Миниатюры
Интеграция SQL запроса в код на C#  
Вложения
Тип файла: rar MyBD.rar (50.4 Кб, 304 просмотров)
2
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
24.04.2012, 21:28  [ТС]
Midnayt, спасибо тебе большое, но я уже не знаю, что делать...
запиливаю твой код к себе проект и опять Ядру СУБД Microsoft Access не удается найти входную таблицу или запрос "БД_МИ". Убедитесь, что объект существует, а его имя указано правильно..
я даже чистый проект создал и все равно.
Вижла десятая стаяла, пришлось ставить восьмую, т.к. в уник надо приносить на проверку, а там только восьмая
0
 Аватар для Midnayt
59 / 59 / 7
Регистрация: 07.12.2009
Сообщений: 324
24.04.2012, 21:58
Таблицу переиминовал ? Изделай всё как в примере там робочая программа сам убедись запусти в папке бин файл + можно поставить 2 студии у меня стоит 2005 и 2010 обе норм работают
1
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
24.04.2012, 22:06  [ТС]
Я все под себя перебил.
про то что твой код и программа - рабочая, это я знаю.

Ну вот сейчас десятку качаю, буду ставить, буду пробовать.
0
 Аватар для Midnayt
59 / 59 / 7
Регистрация: 07.12.2009
Сообщений: 324
24.04.2012, 23:27
скинь проект с базой гляну
0
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
25.04.2012, 12:41  [ТС]
Все!
Сейчас уже все работает, а дело было в именах БД и ее таблиц, я все переименовал, так как ты советовал и заработало.
Только, когда запускаю проект из под Вижлы - все нормально, а вот, когда exe'шник запускаю при загрузке каждой формы выскакивает окошко.
Миниатюры
Интеграция SQL запроса в код на C#  
0
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
25.04.2012, 12:46  [ТС]
И почему-то не работает код, который находится внутри оператора
C#
1
catch{}
Добавлено через 2 минуты
с catch'ем разобрался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2012, 12:46
Помогаю со студенческими работами здесь

Интеграция SQL c базовыми языками
Интеграция SQL c базовыми языками. Не знаю, можно ли задавать такой вопрос - с какими языками программирования, как базовыми, наиболее...

Ошибка SQL запроса: SQL logic error or missing database
Здравствуйте, помогите решить проблему. Считываю бинарный файл и отправляю в БД(использую SQLite) с помощью массива. Отправляю массив в...

Вставка данных из Excel в SQL. При помощи запроса SQL....
Доброго времени суток. Не могли бы Вы мне помочь с SQL запросом, которй вставлял бы весь лист в таблицу SQL? дело в том что мне...

Ошибка SQL-запроса: You have an error in your SQL syntax near 'group(name_group,time)VALUES('123','00:00')'
Уже всю голову сломал, не могу понять в чем косяк? Текст ошибки:You have an error in your SQL syntax; check the manual that corresponds...

SQL запросы, чем плоха конкатенация SQL запроса?
Опишу ситуацию, есть БД с несколькими таблицами, с которыми нужно совершать много разных операций при разных условиях. Операции...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru