Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Из таблицы БД (Entity, SQLExpress) в DataGridView - как? (http://forum.oszone.net/showthread.php?t=233453)

Sidewalker 24-04-2012 21:53 1905303

Из таблицы БД (Entity, SQLExpress) в DataGridView - как?
 
Всем привет.

Собственно вопрос в названии темы. Имеется бд из двух таблиц (сущностей), созданная "вручную+графически" (уж простите новичка), Clients и Orders (со связью один клиент - ко многим заказам), требуется для начала прицепить данные из таблицы Clients в dataGridView1. Гуглил про bindingsource, но "ниасилил". Помогите пожалста. Требуется простое отображение (изменение будет через отдельные кнопки, а не "на лету в ячейке").

p.s.: заодно, немного забегая вперёд, ещё вопрос:
как сделать так, чтобы пользователь кликом мышки выделял строку в этой таблице (dataGridView1), потом нажимал кнопку (buttonEditClient) и я мог узнать какая именно строка выбрана (чтобы потом, после изменения в новом открывающемся по нажатию на кнопку окне пользователем данных "о клиенте", я бы её обновлял в таблице бд) ?

Sidewalker 24-04-2012 22:12 1905317

Нашёл нечто такое, но не работает..

public Form1()
{
...
BindingSource bs1 = new BindingSource();
bs1.DataSource=GetData("Select * From ClientsSet");
dataGridView1.DataSource=bs1;
....
}

private static DataTable GetData(string sqlCommand)
{
string connectionString = "Integrated Security=SSPI;" +
"Persist Security Info=False;" +
"Initial Catalog=Autoservice;Data Source=localhost";

SqlConnection myConnection = new SqlConnection(connectionString);

SqlCommand command = new SqlCommand(sqlCommand, myConnection);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(table);

return table;
}

Delirium 25-04-2012 01:25 1905408

Цитата:

Цитата Sidewalker
требуется для начала прицепить данные из таблицы Clients в dataGridView1 »

В чем пишется? VS 2010? В таком случае кидаем gridview на форму, в правом верхнем углу будет стрелочка - выбираем new datasource - database - выбираем подключение к своим таблицам - выбираем нужную таблицу и поля. Вот тебе и привязка.

Цитата:

Цитата Sidewalker
как сделать так, чтобы пользователь кликом мышки выделял строку в этой таблице »

Выставить в свойствах грида Selection Mode - Full Row Select и Multiply Select = False.

Цитата:

Цитата Sidewalker
я мог узнать какая именно строка выбрана »

dagagridview1.SelectedRows[0] - выбранная строка.

Sidewalker 25-04-2012 19:33 1905807

Цитата:

Цитата Delirium
В таком случае кидаем gridview на форму, в правом верхнем углу будет стрелочка - выбираем new datasource - database - выбираем подключение к своим таблицам - выбираем нужную таблицу и поля. Вот тебе и привязка. »

Да, VS2010. Пробовал, получается как на первом скрине, должные столбцы не образуются, данные не подгружаются. Источники данных и схема бд на втором скрине.

Delirium 26-04-2012 01:08 1905958

Sidewalker, запиши небольшое видео или сделай скрины пошагово, как ты подключаешь к datagridview свой dataset, посмотрим, где ошибка.

Sidewalker 26-04-2012 19:52 1906366

Вот видео. Не пугайтесь формата) Фрапс не захотел писать, пришлось так сделать.

Delirium 27-04-2012 01:19 1906503

Так это же не база данных, а контейнер :))) Привожу тебе свое видео. Создал базку данных, кидаю datagridview и прицепляюсь. Особое внимание обрати на то, к ЧЕМУ я цепляюсь. В твоем примере ты цепляешься к модели данных, а не к самой БД. Т.е. тебе нужно создать Dataset, к которому и будет идти соединение.
В приведенном видео описывается с самого начала процесс создания локальной Базы данных, показано как НЕправильно цепляться к ней и как правильно.
Т.к. видео по нормальному писать я не умею, файлик получился на 60Mb. Доступен по этой ссылке .

Sidewalker 27-04-2012 09:55 1906590

Читал до этого про DataSet, но не совсем понял, и инструкции там были иные, руками всё заполнять (из DataSet в DataGridView), и не только. По-моему дело было при .NET 2.0.

Спасибо огромное, видео отличное! Всё получилось :)

p.s.: У меня сначала видео (20 сек) на 3.4 Гб получилось)

Delirium 27-04-2012 09:58 1906593

Цитата:

Цитата Sidewalker
По-моему дело было при .NET 2.0. »

Нет, я все это делал в проекте под .Net 2.0. Просто можно это делать руками(иногда по другому никак), а можно мастером в простых случаях.
Рад, что смог помочь :)


Время: 16:25.

Время: 16:25.
© OSzone.net 2001-