С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/70: Рейтинг темы: голосов - 70, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 22

с# и sql server 2008

03.09.2009, 02:59. Показов 14011. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
заранее извиняюсь, если не в том месте тема. можете перенести, но только сообщением на е-мейл уведомите ссылкой.

доброго времени суток, уважаемые жители форума. вопрос следующий. прочитал несколько книжек по c# 2005, в каждой из них было написано, что для того, чтобы соединиться с sql server-ом через приложение, написанное на c#, надо добавить на форму sqldataadapter и написать некоторые строчки кода... ну и т.п. открыл свою студию 2008 и увидел, что в винформах этого нет. тогда в сети нашёл способ как это всё описать кодом.

вот, что у меня вышло:
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
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.SqlClient;
 
namespace sql
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            SqlDataReader myReader = null;
            SqlCommand myCommand = new SqlCommand("select LastName, FirstName from Persons");
            myReader = myCommand.ExecuteReader();
            while (myReader.Read()) richTextBox1.Text = myReader.ToString();          
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            SqlConnection myConnection = new SqlConnection("user id=BattleMage;" +
                                                           "password=;" +
                                                           "server=WINDOWSXPSP3;" +
                                                           "Trusted_Connection=yes;" +
                                                           "database=People;" +
                                                           "connection timeout=30");
        }
    }
}
до запуска приложения запускал sql server, в нём создавал датабейс. в обозревателе серверов визуал студио всё появлялось, они увидели друг друга. я даже пробывал добавить через табличку студии несколько данных, а потом через команду select смотрел, что были изменения в окне sql server

ошибка в строке
C#
1
myReader = myCommand.ExecuteReader();
текст ошибки: "ExecuteReader: Свойство Connection не инициализировано."

что сделать нужно? заранее спасибо

кнопка button2 отвечает за установку соединения, а button1 за отправку запроса select
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.09.2009, 02:59
Ответы с готовыми решениями:

Настройка SQL Server 2008 для работы с SQL Server Management Studio
Доброго времени суток. Подскажите пожалуйста, что нужно сделать для того, чтобы SQL Server Management Studio соединялось с SQL сервером ?...

Добавление файла *.mdf. Ошибка "Должен быть установлен и запущен экспресс-выпуск SQL Server 2005 или SQL Server 2008"
Установлена Visual Studio 2010 и SQL Server 2008 R2 Standard. Хочу добавить в приложение файл базы данных *.mdf, но пишет: "должен...

Подключение VS C# 2008 и SQL Server 2008
Добрый день уважаемые форумчане... Мне нужна ВАША помощь... Я искал в инете кучу информации о подключении удаленного доступа.. Но там...

7
 Аватар для exe-dealer
308 / 161 / 11
Регистрация: 07.06.2009
Сообщений: 538
03.09.2009, 03:20
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
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace sql
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
               using(SqlConnection myConnection = new SqlConnection("user id=BattleMage;" +
                                                           "password=;" +
                                                           "server=WINDOWSXPSP3;" +
                                                           "Trusted_Connection=yes;" +
                                                           "database=People;" +
                                                           "connection timeout=30"))
             {
                   SqlCommand myCommand = new SqlCommand("select LastName, FirstName from Persons", myConnection);
                    SqlDataReader myReader = myCommand.ExecuteReader();
                    while (myReader.Read()) richTextBox1.Text = myReader.ToString();    
             }      
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
        }
    }
}
в бд не очень разбираюсь, но вроде бы так

Добавлено через 6 минут
можещь вынести соединение как ты написал, олдин раз открывать, но нужно тогда его все время указывать при выполении команды, и закрывать тоже естстествено при закрытии формы или нажатии другой кнопки
0
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 22
03.09.2009, 03:29  [ТС]
заменил твоим кодом, ошибка следующая:
"Для ExecuteReader нужно открытое и доступное подключение. Подключение закрыто."

мне кажется строка подключения в SqlConnection неверно написана. Я вообще в разных источниках разное читал, кто-то одни параметры пишет, кто-то другие. кто-то вообще большинство опускает...
0
 Аватар для exe-dealer
308 / 161 / 11
Регистрация: 07.06.2009
Сообщений: 538
03.09.2009, 03:39
а, забыл
myConnection.Open() доавь перед SqlDataReader myReader = myCommand.ExecuteReader();

Добавлено через 1 минуту
строку подключения возьми из свойств базы, открытой в sql клиенте vs

Добавлено через 36 секунд
покури ado.net
0
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 22
03.09.2009, 03:44  [ТС]
уже лучше, но я однозначно не то хотел увидеть

появилось в richtextbox строка "System.Data.SqlClient.SqlDataReader ", а я хотел результаты своего запроса - т.е. имена, фамилии, е-мейлы людей

Добавлено через 1 минуту
до ado.net никак не дорасту. с этим пока хочу разобраться...


строку подключения возьми из свойств базы, открытой в sql клиенте vs
куда нажать? витиевато говоришь очень...
0
 Аватар для exe-dealer
308 / 161 / 11
Регистрация: 07.06.2009
Сообщений: 538
03.09.2009, 04:36
чтобы увидеть данные нужно использовать индекатор SqlDataReader'а
while (myReader.Read())
richTextBox1.AppendText(myReader["Имя колонки"].ToString());

Добавлено через 55 секунд
Цитата Сообщение от BattleMage Посмотреть сообщение
появилось в richtextbox строка "System.Data.SqlClient.SqlDataReader "
если она появилась, значит с соединением все ok и строка подключения верная

Добавлено через 1 минуту
Цитата Сообщение от BattleMage Посмотреть сообщение
до ado.net никак не дорасту. с этим пока хочу разобраться...
а это что сейчас ты юзаешь? насколько я знаю эта модель и называется ado.net
1
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 22
07.09.2009, 03:48  [ТС]
спасибо, всё вышло, но вот что ещё беспокоит. хочу, чтобы при запуске формы, это как я полагаю событие Form1_Load, была пустая таблица DataGridView (4 пустые строки), а не заполненная сразу, подключенной базой данных. я пытаюсь очистить таблицу, но не тут-то было. либо одна строчка, либо сразу ошибка. причём пробывал сначала отключать базу, сделать действия, а потом подключить - "не может программно добавлять строчки в привязанную базу" как-то так было написано

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
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.SqlClient;
 
namespace ado_net_2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            this.personsTableAdapter.Fill(this.peopleDataSet1.Persons);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            using (SqlConnection myConnection = new SqlConnection("Data Source=WINDOWSXPSP3;Initial Catalog=People;Integrated Security=True"))
            {
                SqlCommand myCommand = new SqlCommand("select * from Persons where LastName LIKE 'П%'", myConnection);
                try
                {
                    myConnection.Open();
                    SqlDataReader myReader = myCommand.ExecuteReader();
                    int i = 0, j = 0;
                    while (myReader.Read())
                    {
                        DataGridViewCell txtCell1 = grid.Rows[i].Cells[j + 1];
                        txtCell1.Value = myReader["FirstName"].ToString();
 
                        DataGridViewCell txtCell2 = grid.Rows[i].Cells[j + 2];
                        txtCell2.Value = myReader["LastName"].ToString();
 
                        DataGridViewCell txtCell3 = grid.Rows[i].Cells[j + 3];
                        txtCell3.Value = myReader["Email"].ToString();
                        i++; j = 0;
                    }
                    myReader.Close();
                    myConnection.Close();                 
                }
                catch (Exception e1)
                {
                    richTextBox1.AppendText(e1.ToString());
                }
 
            }      
        }
 
 
    }
}
0
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 22
11.09.2009, 02:58  [ТС]
почему с вышеприведённым кодом программы не получается выполнить запрос?
SQL
1
INSERT INTO Persons VALUES (5,'Сидор', 'Сидоров', 'sidorov@mail.ru')
ошибка такая:
Кликните здесь для просмотра всего текста
System.Data.SqlClient.SqlException: An explicit value for the identity column in table 'Persons' can only be specified when a column list is used and IDENTITY_INSERT is ON.
в System.Data.SqlClient.SqlConnection.OnEr ror(SqlException exception, Boolean breakConnection)
в System.Data.SqlClient.SqlInternalConnect ion.OnError(SqlException exception, Boolean breakConnection)
в System.Data.SqlClient.TdsParser.ThrowExc eptionAndWarning(TdsParserStateObject stateObj)
в System.Data.SqlClient.TdsParser.Run(RunB ehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
в System.Data.SqlClient.SqlDataReader.Cons umeMetaData()
в System.Data.SqlClient.SqlDataReader.get_ MetaData()
в System.Data.SqlClient.SqlCommand.FinishE xecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
в System.Data.SqlClient.SqlCommand.RunExec uteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
в System.Data.SqlClient.SqlCommand.RunExec uteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
в System.Data.SqlClient.SqlCommand.RunExec uteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
в System.Data.SqlClient.SqlCommand.Execute Reader(CommandBehavior behavior, String method)
в System.Data.SqlClient.SqlCommand.Execute Reader()
в ado_net_2.Form1.button1_Click(Object sender, EventArgs e) в C:\Documents and Settings\BattleMage\Мои документы\Visual Studio 2008\Projects\ado_net_2\ado_net_2\Form1. cs:строка 34
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.09.2009, 02:58
Помогаю со студенческими работами здесь

Совместимость Microsoft SQL Server 2008 и Microsoft SQL Server 2016
Здравствуйте!Столкнулся с такой проблемой:написал программу на Visual Studio 2010(по техническим причинам стоял ХР и только 2010 работал) в...

MS SQL SERVER 2008+С#
помогите! Хочу научиться освоить работу с базами данных MS SQL SERVER 2008 слава богу освоил, всего понемногу (АЗЫ), вот теперь хочу...

Мини Документооборот C#2008 и SQL Server 2008
Здраствуйте господа Программисты. думаю над способом реализации мини документоборота хотябы создать начальный каркас!!! например можно...

Подключение к SQL Server 2008
Очень волнует вопрос как правильно организовать подключение к SQL. Устанавливать соединение на сессию, т.е. на время работы приложения....

Sql server 2008 r2 express
Установится ли на windows7 Sql server 2008 r2 express (SQL Server Database Engine и SQL Server Management Studio Express) ?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru