Показать полную графическую версию : [решено] Из таблицы БД (Entity, SQLExpress) в DataGridView - как?
Sidewalker
24-04-2012, 21:53
Всем привет.
Собственно вопрос в названии темы. Имеется бд из двух таблиц (сущностей), созданная "вручную+графически" (уж простите новичка), Clients и Orders (со связью один клиент - ко многим заказам), требуется для начала прицепить данные из таблицы Clients в dataGridView1. Гуглил про bindingsource, но "ниасилил". Помогите пожалста. Требуется простое отображение (изменение будет через отдельные кнопки, а не "на лету в ячейке").
p.s.: заодно, немного забегая вперёд, ещё вопрос:
как сделать так, чтобы пользователь кликом мышки выделял строку в этой таблице (dataGridView1), потом нажимал кнопку (buttonEditClient) и я мог узнать какая именно строка выбрана (чтобы потом, после изменения в новом открывающемся по нажатию на кнопку окне пользователем данных "о клиенте", я бы её обновлял в таблице бд) ?
Sidewalker
24-04-2012, 22:12
Нашёл нечто такое, но не работает..
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
требуется для начала прицепить данные из таблицы Clients в dataGridView1 »
В чем пишется? VS 2010? В таком случае кидаем gridview на форму, в правом верхнем углу будет стрелочка - выбираем new datasource - database - выбираем подключение к своим таблицам - выбираем нужную таблицу и поля. Вот тебе и привязка.
как сделать так, чтобы пользователь кликом мышки выделял строку в этой таблице »
Выставить в свойствах грида Selection Mode - Full Row Select и Multiply Select = False.
я мог узнать какая именно строка выбрана »
dagagridview1.SelectedRows[0] - выбранная строка.
Sidewalker
25-04-2012, 19:33
В таком случае кидаем gridview на форму, в правом верхнем углу будет стрелочка - выбираем new datasource - database - выбираем подключение к своим таблицам - выбираем нужную таблицу и поля. Вот тебе и привязка. »
Да, VS2010. Пробовал, получается как на первом скрине, должные столбцы не образуются, данные не подгружаются. Источники данных и схема бд на втором скрине.
Delirium
26-04-2012, 01:08
Sidewalker, запиши небольшое видео или сделай скрины пошагово, как ты подключаешь к datagridview свой dataset, посмотрим, где ошибка.
Sidewalker
26-04-2012, 19:52
Вот видео. Не пугайтесь формата) Фрапс не захотел писать, пришлось так сделать.
Delirium
27-04-2012, 01:19
Так это же не база данных, а контейнер :))) Привожу тебе свое видео. Создал базку данных, кидаю datagridview и прицепляюсь. Особое внимание обрати на то, к ЧЕМУ я цепляюсь. В твоем примере ты цепляешься к модели данных, а не к самой БД. Т.е. тебе нужно создать Dataset, к которому и будет идти соединение.
В приведенном видео описывается с самого начала процесс создания локальной Базы данных, показано как НЕправильно цепляться к ней и как правильно.
Т.к. видео по нормальному писать я не умею, файлик получился на 60Mb. Доступен по этой ссылке (http://dl.dropbox.com/u/33251224/movie.avi) .
Sidewalker
27-04-2012, 09:55
Читал до этого про DataSet, но не совсем понял, и инструкции там были иные, руками всё заполнять (из DataSet в DataGridView), и не только. По-моему дело было при .NET 2.0.
Спасибо огромное, видео отличное! Всё получилось :)
p.s.: У меня сначала видео (20 сек) на 3.4 Гб получилось)
Delirium
27-04-2012, 09:58
По-моему дело было при .NET 2.0. »
Нет, я все это делал в проекте под .Net 2.0. Просто можно это делать руками(иногда по другому никак), а можно мастером в простых случаях.
Рад, что смог помочь :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.