Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Создание запросов к базе


Автор: Deee 10.4.2009, 19:40
Здравствуйте!
стоит Visual studio 2008 express, sql server 2005
на c# написано приложение для просмотра данных из бызы и создание запросов к ней!
на форме стоит textbox (или аналогичный элемент), в котором прописан текст запроса(SQL), по нажатию на кнопку он должен выполниться. 
как реализовать? подскажите пожалуйста.
заранее благодарен!

Автор: Partizan 10.4.2009, 19:48
Deee, создаёте объект типа SqlCommand и запускаете его метод ExecuteReader

Автор: Deee 10.4.2009, 19:56
Partizan, если не трудно, можете выложить код?

Автор: Partizan 10.4.2009, 20:16
Deee

Код

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        connection.Open();

        SqlCommand command = new SqlCommand(queryString, connection);
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}", reader[0]));
        }
    }
}


© MSDN

Автор: Deee 10.4.2009, 20:29
А что значит 
Цитата(Partizan @  10.4.2009,  20:16 Найти цитируемый пост)
while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}", reader[0]));
        }

и где должна быть ссылка textbox? 
я должен нажать на кнопку, а в сетке (dataGridView) должен появиться результат моего запроса.

Автор: Partizan 10.4.2009, 20:46
Цитата

А что значит 


Deee,  это вывод результатов запроса в консоль построчно

Цитата

и где должна быть ссылка textbox? 


текст из текстбокса подставляется вместо queryString

Цитата

я должен нажать на кнопку, а в сетке (dataGridView) должен появиться результат моего запроса.


Откройте для себя гугль...

http://www.google.ru/search?q=%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5+sqldatareader&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

Автор: Deee 10.4.2009, 20:56
Partizan, спасибо, конечно, но некоторые из этих ссылок я читал...
нигде не могу раздобыть пример именно такого кода, чтоб разобраться.
просто делал такую работу на делфи
Код

procedure TForm3.BitBtn1Click(Sender: TObject);
begin
  Query4.close;
  Query4.SQL.Clear;
  Query4.SQL.Add(RE0.text);
  Query4.Open;
end ; 

там это выглядело так

Автор: Partizan 10.4.2009, 21:05
Deee, это не .NET...."с наскоку" переписать дельфовый код под C#.NET не получится, так что советую для начала подучить матчасть по гуглю и книжкам по ADO.NET 2.0

Автор: Deee 11.4.2009, 13:45
Partizan, спасибо!

Добавлено через 1 минуту и 49 секунд
Кто-нибудь покажите, пожалуйста, код по вышеприведенной проблеме!
 smile Мне очень нужен пример!
заранее благодарю!

Автор: KelTron 11.4.2009, 20:15
Код

//... Пихаем эту строку в обработчик события нажатия кнопки...
this.dataGridView.DataSource = ExecuteDataTable(this.textBox.Text, connStr);
//...

private DataTable ExecuteDataTable(string queryString, string connStr) 
{
    SqlConnection conn = new SqlConnection(connStr);
    SqlDataAdapter adapter = new SqlDataAdapter(queryString, conn);
    DataTable table = new DataTable();
    adapter.Fill(table);

    return table;
}


dataGridView - соответственно грид где отображается результат запроса, textBox - содержит текст запроса...

Автор: Deee 11.4.2009, 23:59
KelTron, а если при запуске такую ошибку выдает
Код

Error The name 'connStr' does not exist in the current context    

Автор: KelTron 13.4.2009, 04:58
Мог бы догадаться что туда надо передать строку подключения к базе...

Автор: Deee 13.4.2009, 16:16
KelTron, а как выглядит код? там путь к базе??  smile 
буду очень признателен, если поможешь до конца разобраться с моей проблемой!

Автор: Rififi 13.4.2009, 22:19
Deee
там путь к базе??
1. открываешь браузер (программа, которая показывает Интернет)
2. медленно и печально набираешь www.connectionstrings.com
3. ищешь свою базу
4. нажимаешь 1 (один) раз левой кнопкой мыши на свою базу
5. ищешь текст, где присутствуют слова "... SQL ....", "... .NET Provider ..."
6. глядишь ниже, замечаешь строчку соединения в виде цитаты
7. подводишь курсор мышь к началу строчки соединения
8. зажимаешь левую кнопку мышь и не отпуская кнопку, ведешь курсор до конца строчки. текст должен подкраситься черным цветом.
9. отпускаешь кнопку мышь, нажимаешь на клавиатуре клавишу Ctrl, затем не отпуская Ctrl нажимаешь C
10. открываешь в студии текст программы
11. перед самым первым использованием переменной connStr пишешь: string connStr = "";
12. устанавливаешь курсор мыши между кавычками
13. нажимаешь на клавиатуре клавишу Ctrl, затем не отпуская Ctrl нажимаешь V
14. компилируешь программу
15. если на любом из этапов что-то пошло не так, надо закрыть все программы, в том числе студию и Интернет, и начать всё сначала.
16. если ничего не помогает, принять 200 грамм коньяку.

Автор: -Mikle- 13.4.2009, 22:57
Rififi, ну ты и жжешь!!!  smile smile smile 

Добавлено @ 23:04
Deee, прежде, чем начать писать программу под БД (Базу Данных), необходимо освоить всю теорию БД, а также все основы. Задавать вопросы типа "напишите мне и я вам скажу спасибо" не годится, так как пользы и знаний тебе ответы на такие вопросы не принесут, будь уверен. А если тебе НЕ интересно само по себе программирование, но ты по тем или иным причинам должен что-то написать, но сам не можешь, то нужно такие вещи покупать или искать бесплатные готовые. По твоим вопросам у всех (не побоюсь за всех ответить), создалось впечатление человека, два дня назад установившего VisualStudio и пытающегося что-либо сделать не зная основ.

Автор: KelTron 14.4.2009, 04:43
Цитата(-Mikle- @  13.4.2009,  22:57 Найти цитируемый пост)
необходимо освоить всю теорию БД


Звучит ужасающе.. особенно для новичка..)  


Автор: -Mikle- 14.4.2009, 08:57
Цитата(KelTron @  14.4.2009,  07:43 Найти цитируемый пост)
Звучит ужасающе

Да, это я немного перегнул конечно  smile , для начало достаточно будет базовых основ smile 

Автор: Deee 14.4.2009, 17:07
-Mikle-
Цитата(-Mikle- @  13.4.2009,  22:57 Найти цитируемый пост)
прежде, чем начать писать программу под БД (Базу Данных), необходимо освоить всю теорию БД, а также все основы.

а то я сам этого не знал!

Цитата(-Mikle- @  13.4.2009,  22:57 Найти цитируемый пост)
пользы и знаний тебе ответы на такие вопросы не принесут

наоборот, очень даже помогут, ведь метод аналогии очень хорош при изучении чего-либо!


Цитата(-Mikle- @  13.4.2009,  22:57 Найти цитируемый пост)
напишите мне и я вам скажу спасибо

а что благодарность, разве нынче не в моде??


Цитата(-Mikle- @  13.4.2009,  22:57 Найти цитируемый пост)
то нужно такие вещи покупать или искать бесплатные готовые

я знаю это! и сколько по-твоему я должен заплатить за ответ на такой "простейший (для вас)" вопрос? 1$ ?



Цитата(-Mikle- @  13.4.2009,  22:57 Найти цитируемый пост)
По твоим вопросам у всех (не побоюсь за всех ответить), создалось впечатление человека, два дня назад установившего VisualStudio и пытающегося что-либо сделать не зная основ. 

ну какое у вас (
Цитата(-Mikle- @  13.4.2009,  22:57 Найти цитируемый пост)
(не побоюсь сказать)
) возникло впечатление, мне все равно, 
Цитата(-Mikle- @  13.4.2009,  22:57 Найти цитируемый пост)
будь уверен
 smile 







KelTron, респект тебе!!! здорово выручил!!!

Rififi, спасибо огромное! ценный ресурс! конечно немного перегнул, но все равно улыбнуло!

Автор: -Mikle- 14.4.2009, 18:54
Deee, Удачи Вам! Приходите еще! Мы всегда рады вам в любое время!

PS:
Не было ни малейшего желания оскорбить Вас, но раз так получилось (как мне показалось), то я видимо должен дать объяснение. Такое впечатление возникло из-за ваших вопросов после того, как вам дали внятный ответ. Я не про вопрос темы, а про остальные:
Цитата(Deee @  10.4.2009,  23:29 Найти цитируемый пост)
и где должна быть ссылка textbox?
 если вы не в состоянии разобраться с этим - значит не имеете ни малейшего представления о том, с чем работаете.
Цитата(Deee @  12.4.2009,  02:59 Найти цитируемый пост)
KelTron, а если при запуске такую ошибку выдает Error The name 'connStr' does not exist in the current context
 если вы до сих пор не знаете что это за ошибка и почему она у вас появилась - то вы установили VisualStudio пару дней назад, не больше (поэтому я сказал "необходимо освоить .... а также все основы").
Цитата(Deee @  13.4.2009,  19:16 Найти цитируемый пост)
KelTron, а как выглядит код? там путь к базе??
 а этот вопрос свидетельствует о том, что у вас в наличии даже БД нету и вы даже не пробовали к ней подключиться (отсяда: "...необходимо освоить теорию БД...").
То, что я сказал "напишите мне и я вам скажу спасибо" уж ни в коем случае не подразумевало каких-либо материальных благ. Я на этом форуме с 2003 года и всегда помогал людям и даже не за "спасибо". Отсутствие последнего, меня тоже не расстраивает, т.к. я осознаю, что меня вообще никто не просит ничего писать, а раз так, то значит я пишу просто, потому что знаю и хочу поделиться. И вот эти слова: "нужно такие вещи покупать или искать бесплатные готовые" относились не к моему желанию (по вашему мнению) получить 1$ за помощь, а к условному предположению "А если тебе НЕ интересно само по себе программирование, но ты по тем или иным причинам должен что-то написать". И последнее, так как тебе глубоко наплевать на мое мнение, то можешь просто игнорировать мои посты, вместо дословного их комментирования и высказываний. И мне очень жаль, что ты еще не в состоянии принимать критику в свою сторону, как основу и фундамент для своего развития. Такое поведение, обычно, присуще очень молодым людям.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)