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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2014, 14:01   #1
valun91
Пользователь
 
Регистрация: 27.11.2014
Сообщений: 22
Печаль нужна помощь с ADO.NET

Задача такова, DataGridView заполненный названиями таблиц базы данных, нужно при нажатии на ячейку DataGridView содержащюю название таблицы , сформировать запрос который выведет содержимое этой таблицы в другой DataGridView. Использую MS SQL Server. Хотел попробовать с помощью переменной указать название таблиц, но не получается(((
или как в с# указать имя таблицы в sql запросе через переменную?

Последний раз редактировалось valun91; 27.11.2014 в 19:17.
valun91 вне форума Ответить с цитированием
Старый 27.11.2014, 20:43   #2
shturman1387
Форумчанин
 
Аватар для shturman1387
 
Регистрация: 12.06.2012
Сообщений: 110
По умолчанию

На такой запрос "SELECT * FROM @table" он будет ругаться, даже если укажите SqlParameter @table. Программа вам выдаст исключение "необходимо объявить переменную @table".
Можно сделать так.
Код:
SqlCommand command = new SqlCommand();
command.CommandText = string.Format("SELECT * FROM {0}", "имя таблицы");
command.Connection = <содинение>;
shturman1387 вне форума Ответить с цитированием
Старый 27.11.2014, 21:34   #3
valun91
Пользователь
 
Регистрация: 27.11.2014
Сообщений: 22
По умолчанию

а имя таблицы можно задать переменной?
заранее спасибо.
valun91 вне форума Ответить с цитированием
Старый 27.11.2014, 22:07   #4
shturman1387
Форумчанин
 
Аватар для shturman1387
 
Регистрация: 12.06.2012
Сообщений: 110
По умолчанию

Еще раз говорю. Если вы сделаете такую конструкцию
Код:
SqlCommand command = new SqlCommand("SELECT * FROM @table", connection);
,а потом добавите Sqlparameter
Код:
command.Parameters.Add(new SqlParameter("@table", <имя таблицы>));
то возникнет исключение "Необходимо объявить табличную переменную "@table"".
shturman1387 вне форума Ответить с цитированием
Старый 27.11.2014, 22:49   #5
valun91
Пользователь
 
Регистрация: 27.11.2014
Сообщений: 22
По умолчанию

суть в том что таблицы которые нужно будет выводить по событию СелЭнтер будет меня ться, следователино имена таблиц будут тоже динамически меняться.
valun91 вне форума Ответить с цитированием
Старый 27.11.2014, 23:24   #6
shturman1387
Форумчанин
 
Аватар для shturman1387
 
Регистрация: 12.06.2012
Сообщений: 110
По умолчанию

Цитата:
Сообщение от valun91 Посмотреть сообщение
следователино имена таблиц будут тоже динамически меняться.
Так а в чем собственно проблема?
shturman1387 вне форума Ответить с цитированием
Старый 27.11.2014, 23:29   #7
valun91
Пользователь
 
Регистрация: 27.11.2014
Сообщений: 22
По умолчанию

проблема в том что не могу понять как в запросе динамически менять имя выводимой таблицы
вот этой инструкцией я я получаю имя таблицы из DataGridView,
Код:
q = dgv_table.Rows[e.RowIndex].Cells[1].Value.ToString();
но не знаю как потом создать запрос вывода этой таблицы

Последний раз редактировалось valun91; 27.11.2014 в 23:39.
valun91 вне форума Ответить с цитированием
Старый 27.11.2014, 23:35   #8
shturman1387
Форумчанин
 
Аватар для shturman1387
 
Регистрация: 12.06.2012
Сообщений: 110
По умолчанию

Код:
command.CommandText = string.Format("SELECT * FROM {0}", "имя таблицы");
Так а чем вам тогда эта конструкция не подходит. Подставляйте вместо "имя таблицы" свою переменную.
shturman1387 вне форума Ответить с цитированием
Старый 27.11.2014, 23:37   #9
valun91
Пользователь
 
Регистрация: 27.11.2014
Сообщений: 22
По умолчанию

попробовал но программа нечего не выводит, а вот если вместо переменной вставить имя то тогда выводит, но потом оно динамически не поменяется
valun91 вне форума Ответить с цитированием
Старый 27.11.2014, 23:48   #10
valun91
Пользователь
 
Регистрация: 27.11.2014
Сообщений: 22
По умолчанию

спасибо разобрался
valun91 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net gammaray Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 22.11.2010 17:36
ADO.NET CreaGame Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 10 22.08.2009 23:23
ADO.Net __avatar__ Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 3 01.06.2009 01:44