Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
1

Подключение базы данных MS SQL Server 2008

01.06.2014, 18:08. Показов 3280. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Имеется VS 2013 Pro и MS SQL Server 2008. База данных сама уже собрана, интерфейс создан, но проект мой повис на несколько месяцев, уже сил нет и препод не может никак помочь. Как их связать?
Я не могу даже ничего нагуглить толком. Большая часть мануалов идет через Grid, а он мне нафиг не нужен. Лишь взять данные из таблиц и положить обратно.
Саму базу вроде подключил через мастера (обозревателе есть), в Webconfig есть прописанный ConnectionString, но я совершенно не понимаю, как мне из моего веб-приложения обратиться к таблице.
Пробовал такой код:
C#
1
2
3
4
5
6
7
using (SqlConnection cn = new SqlConnection(@"Data Source=LSI\SOCIONICS;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=257262"))
            {
                cn.Open();
 
                // Работа с базой данных
                cn.Close();
            }
Но у меня выдает ошибку на SqlConnection "Ошибка 1 Не удалось найти имя типа или пространства имен "SqlConnection" (пропущена директива using или ссылка на сборку?)"

В общем, объясните, пожалуйста, как для тупых, что мне надо сделать, чтобы всё это начало взаимодействовать. Опыта работы с БД вообще нет никакого.

Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2014, 18:08
Ответы с готовыми решениями:

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

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

Подключение к БД MS SQL Server 2008
пробую в проэкте VS 2008 подключить БД на SQL Server 2008. На компе стоит именованный инстанс -...

Подключение по сети к MS SQL server 2008
Добрый день! На компьютере имеется свеже-установленный MS SQL server 2008. Имя сервера:...

9
Неадекват
1496 / 1233 / 247
Регистрация: 02.04.2010
Сообщений: 2,802
01.06.2014, 18:10 2
Добавьте строчку:
C#
1
using System.Data.SqlClient;
1
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
01.06.2014, 18:20  [ТС] 3
Эхх... Создал вот такой запрос, вроде ошибок нет, но никаких данных не появилось в таблице...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        {
            Name = TextBox1.Text;
            Age = TextBox2.Text;
            City = TextBox3.Text;
 
            using (SqlConnection cn = new SqlConnection(@"Data Source=LSI\SOCIONICS;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=257262"))
            {
                cn.Open();
                SqlCommand sqlCommand = new SqlCommand("INSERT INTO dbo.User (FIO, Age, Country) VALUES (Name, Age, City)", cn);
                cn.Close();
            }
        }
0
Неадекват
1496 / 1233 / 247
Регистрация: 02.04.2010
Сообщений: 2,802
01.06.2014, 18:29 4
Забыли выполнить команду
C#
1
sqlCommand.ExecuteNonQuery();
1
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
01.06.2014, 18:30  [ТС] 5
Не забыли, а вовсе не знали .____.
На синтаксис ругается около "User". Вроде видео смотрю параллельно на youtube, у меня так же написано..
0
Заблокирован
01.06.2014, 18:37 6
Dreiser, а разве такой запрос будет работать? По-моему нужно в одинарные кавычки заключить:

C#
1
2
3
4
            string query = @"INSERT INTO dbo.User (FIO, Age, Country) VALUES
                
                ('"+TextBox1.Text+"','"+ TextBox2.Text +"','"+ TextBox3.Text+"')";
            SqlCommand sqlCommand = new SqlCommand(query, cn);
0
Неадекват
1496 / 1233 / 247
Регистрация: 02.04.2010
Сообщений: 2,802
01.06.2014, 18:37 7
Попробуйте заключить их в квадратные скобки [dbo].[User] и Values - в кавычки.
1
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
02.06.2014, 13:08  [ТС] 8
Вот так заработало!
Спасибо, о, великие волшебники!

C#
1
2
3
4
5
6
7
8
9
10
11
12
using (SqlConnection cn = new SqlConnection(@"Data Source=LSI\SOCIONICS;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=257262"))
            {
                SqlCommand sqlCommand = new SqlCommand("INSERT INTO [User](FIO, Age, Country) VALUES(@Name, @Age, @City)", cn);
                sqlCommand.Parameters.AddWithValue("@Name", TextBox1.Text);
                sqlCommand.Parameters.AddWithValue("@Age", TextBox2.Text);
                sqlCommand.Parameters.AddWithValue("@City", TextBox3.Text);
 
                cn.Open();
 
                sqlCommand.ExecuteNonQuery();
                cn.Close();
            }
Добавлено через 18 часов 23 минуты
А если я беру оператор SELECT, как мне некоторой переменной присвоить результат запроса?
ExecuteNonQuery() возвращает кол-во задействованных строк...
0
Заблокирован
02.06.2014, 13:17 9
Dreiser, например:

C#
1
2
3
4
5
6
7
8
                
var Читатель = sqlCommand.ExecuteNonQuery();
while (Читатель.Read() == true)
                {
//тут считываете туда, куда удобно, например:
                    dataGridView2.Rows.Add(Читатель.GetValue(0), Читатель.GetValue(1), Читатель.GetValue(2), Читатель.GetValue(3));
                }
Читатель.Close();
0
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
02.06.2014, 13:58  [ТС] 10
C#
1
2
3
4
5
6
7
var Читатель = sqlCommand.ExecuteNonQuery();
while (Читатель.Read() == true)
                {
//тут считываете туда, куда удобно, например:
                    dataGridView2.Rows.Add(Читатель.GetValue(0), Читатель.GetValue(1), Читатель.GetValue(2), Читатель.GetValue(3));
                }
Читатель.Close();
У меня нет такого метода Read.. еще какой-то using нужен?

Добавлено через 6 минут
C#
1
2
3
4
5
6
7
8
SqlCommand AnswKoef = new SqlCommand("SELECT [Koef] FROM [AnswKoef] WHERE [Variant] = 1", cn);
                        cn.Open();
                        var read = AnswKoef.ExecuteNonQuery();
                        while (read.Read() == true)
                        {
 
                        }
                        cn.Close();
Код
Ошибка	1	"int" не содержит определение для "Read". Не удалось найти метод  расширения "Read", принимающий первый аргумент типа "int"  (пропущена директива using или ссылка на сборку?)
Добавлено через 8 минут
Всё, разобрался. Другой метод нужен был, не ExecuteNonQuery()

C#
1
2
3
4
5
6
7
8
SqlCommand AnswKoef = new SqlCommand("SELECT [Koef] FROM [AnswKoef] WHERE [Variant] = 1", cn);
                        cn.Open();
                        var read = AnswKoef.ExecuteReader();
                        while (read.Read() == true)
                        {
                            chet = read.GetFloat(0);
                            cn.Close();
                        }
Добавлено через 6 минут
Точнее, так:
C#
1
2
3
4
5
6
7
8
9
SqlCommand AnswKoef = new SqlCommand("SELECT [Koef] FROM [AnswKoef] WHERE [Variant] = 3", cn);
                        cn.Open();
                        var read = AnswKoef.ExecuteReader();
                        while (read.Read() == true)
                        {
                            chet = read.GetFloat(0);
                            read.Close();
                        }
                        cn.Close();
Правда теперь такая проблема: при пошаговой проверке работает, а при обычном запуске выдает ошибку "Недопустимая попытка вызвать Read при закрытом устройстве чтения."

Добавлено через 8 минут
Аха, нашел, в чем был неправ.
C#
1
2
3
read.Close();
}
cn.Close();
нужно сделать
C#
1
2
3
}
read.Close();
cn.Close();
0
02.06.2014, 13:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2014, 13:58
Помогаю со студенческими работами здесь

Запрос из базы возвращает в reader значение поля типа date как datetime +MS SQL Server 2008
В таблице есть поле типа Date, в таблицу добавлены записи, в это поле добавлена запись только с...

Работа с базой данных MS SQL Server 2008 r2 на C#
Подскажите плиз создала БД в sql sever через менеджмент студио. написала программно запрос запрос...

Создание базы данных в SQL Management Studio 2008
Нужно создать базу данных в SQL Managmment Studio 2008 при нажатии на клавишу пробовал вот так ...

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru