Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Alberto_Timakov
1 / 1 / 1
Регистрация: 21.11.2011
Сообщений: 183
1

Соединение с базой данных вручную

25.01.2013, 12:47. Просмотров 2240. Ответов 3
Метки нет (Все метки)

Здравствуйте!
Есть база данных SQL_Test_1 созданная в SQL Server Management Studio Express, к которой, я подключаюсь из кода следующим образом:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
string CommandText = "select * from Туристы;";
            string ConnectString =
                @"Data Source = .\SQLEXPRESS;" +
                @"AttachDBFilename = C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop\SQL_Test_1.mdf;" + 
                "Integrated Security = true;" +
                "Connect Timeout = 30;" +
                "User Instance = true";
            SqlConnection conn = new SqlConnection(ConnectString);
            conn.Open();
            SqlCommand command = conn.CreateCommand();
            command.CommandText = CommandText;
            SqlDataAdapter dataAdapter = new SqlDataAdapter();
            dataAdapter.SelectCommand = command;
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds, "Туристы");
            dataGridView1.DataSource = ds.Tables["Туристы"].DefaultView;
            conn.Close();
и через конструктор:

Переношу на форму Binding Source -> DataSource -> Add Project Data Source -> Database -> Набор данных -> Создать подключение -> Имя сервера -> N -> Использовать проверку подленности Windows -> Выберите или ввидите имя базы данных - SQL_Test_1.

В итоге при запуске отображаются разные таблицы. Причем соединение через конструктор отображает правильную таблицу, а соединение вручную берет таблицу непонятно какую...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2013, 12:47
Ответы с готовыми решениями:

Соединение с базой данных
Помогите пожалуйста! Создаю приложение для работы с базой данных на C#, при...

C# + MSSQL: Соединение с базой данных
using System; using System.Collections.Generic; using System.Text; using...

При переносе приложения проподает соединение с базой данных
Здравствуйте. У меня такой вопрос создал клиент-серверное приложение. При его...

Не удаётся установить соединение с базой
У меня созданы 2 виртуальные машины. Они пингуются между собой. На 1 я...

Не идет соединение с базой MSSQL на других ПК
Есть база *.mdf, на компе где компилируется - есть соединение с этой базой, но...

3
ToN.FiER
7 / 7 / 8
Регистрация: 11.04.2012
Сообщений: 87
25.01.2013, 12:56 2
Запрос правильный?
0
Alberto_Timakov
1 / 1 / 1
Регистрация: 21.11.2011
Сообщений: 183
25.01.2013, 13:58  [ТС] 3
Для обоих datagridView один и тот же запрос:
C#
1
string CommandText = "select * from Туристы;";
Добавлено через 37 минут
А вот если пишу следующее, то работает

C#
1
2
3
4
            string ConnectString =
                "Data Source = Boboka;" +
               "Initial Catalog = SQL_Test_1;" +
              "Integrated Security = SSPI;";
Но непонятно, почему первый вариант не работает...Где же находится тогда база которую выводит соединение созданное посредством конструктора и вручную?
0
Игрок_со_Смерть
36 / 36 / 6
Регистрация: 06.01.2013
Сообщений: 195
25.01.2013, 17:04 4
А не проще ли записать так, и кинуть базу в папку с проектом?
На примере авторизации

C#
1
2
3
4
5
public SqlCeConnection cn = new SqlCeConnection(@"Data Source=|DataDirectory|\database.sdf");
 
.............
cn.Open(); //Открыть базу
.............

А потом просто получать данные и грузить например в ListBox?

C#
1
2
3
4
5
6
7
8
9
SqlCeCommand login = new SqlCeCommand("SELECT LOGIN FROM tb_auth WHERE LOGIN ='"+textBox1.Text+"'",cn);
            SqlCeCommand pass = new SqlCeCommand("SELECT PASS FROM tb_auth WHERE LOGIN = '"+textBox1.Text+"' ",cn);
 
 
            if (textBox1.Text == login.ExecuteScalar().ToString() && textBox2.Text == pass.ExecuteScalar().ToString())
            {
 
                SqlCeCommand fio = new SqlCeCommand("SELECT FIO FROM tb_auth WHERE LOGIN = '" + textBox1.Text + "'", cn);
             MessageBox.Show("Приветствуем Вас, " + fio.ExecuteScalar().ToString() + " !");
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2013, 17:04

Соединение с базой и запрос в разных классах
В классе Form1 : Form есть соединение с базой: NpgsqlConnection conn = new...

Работа с базой данных
Есть обычное клиент-серверное приложение на сокетах. Сервер - обычное...

Работа с базой данных
Всем привет! Сейчас делаю программу по учёту рабочего времени. Есть одна...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru