Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.173.112] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Народ! Помогите доделать прогу!
На форме есть DataGridView (или DataGrid, неважно), и база ms access( в аттаче), с которой надо работать только из этой проги работать(вставка, удаление, измение, выборка). В голове у меня такая каша, что не могу ниче сообразить. ХЕЛП! PS Или ссылочку хоть подкиньте... Прикреплённый файлnewInternetShop.rar (16.93 Кбайт, скачиваний: 206) |
Сообщ.
#2
,
|
|
|
Разнопоточный доступ к GUI - там кроме разнопоточности показана работа с Access
|
Сообщ.
#3
,
|
|
|
Посмотри в книге Э.Троелсена. Там есть. А в чем проблема?
|
Сообщ.
#4
,
|
|
|
Цитата СаняСаняСаня @ Посмотри в книге Э.Троелсена. Там есть. А в чем проблема? Не видел я там этого. Как полное название книги и страница? Цитата PIL @ Разнопоточный доступ к GUI - там кроме разнопоточности показана работа с Access Это лишь малая часть, что мне итак понятно. |
Сообщ.
#5
,
|
|
|
GRIENDERS Добрый вечер!
А в чем собственно проблема? В том как написать запросы или в чем то другом? |
Сообщ.
#6
,
|
|
|
Эндрю Троелсен. C# и платформа .NET. Стр 673.
|
Сообщ.
#7
,
|
|
|
Цитата СаняСаняСаня @ Эндрю Троелсен. C# и платформа .NET. Стр 673. Скачал ее в архиве, а там пароль... Видно не судьба. Как нибудь, если найду, почитаю. Цитата RDAlex @ А в чем собственно проблема? В том как написать запросы или в чем то другом? Я кое что начиркал, создал бд, в ней одну простенькую таблицу. Короче все вроде нормально, но как сделать так, чтобы при добавлении записи ключевое поле само заполнялось как в самом Access'e. Ведь можно добавлять можно хоть и уникальными записями, но идущими не по порядку или вообще отрицательные. Не могу понять логику работы операторов вставки, удаления и тд. Например string sql_update = "UPDATE TestTable1 SET field1_for_table1=?, field2_for_table1=?, field3_for_table1=? WHERE id_for_table1=?"; Это что, в таблице обязательно должно быть ключевое поле ? А если просто в ней 3 поля и все текстовые и нет ключевого, тогда как ? |
Сообщ.
#8
,
|
|
|
Цитата GRIENDERS @ - первичный ключ должен присутствовать в таблице однозначно, пусть это будет одно поле или несколько полей. Работая с отсоединенными данными при отсутствии первичного ключа нет возможности идентифицировать строку которую ты хочешь изменить-удалить. С такими же полями может оказаться несколько записей.Это что, в таблице обязательно должно быть ключевое поле ? А если просто в ней 3 поля и все текстовые и нет ключевого, тогда как ? Почитай что-то о базах данных. |
Сообщ.
#9
,
|
|
|
Цитата GRIENDERS @ ИМХО автоинкрементные поля - зло. Не пользуюсь ими. Значения для ключа генерю сам из запроса чтонить типаКороче все вроде нормально, но как сделать так, чтобы при добавлении записи ключевое поле само заполнялось как в самом Access'e. public int dbGetNextId(string tablename, string id_name) { string sql="select max(" + id_name + ") from " + tablename; try { object o=com.ExecuteScalar(sql); if (o is int) { return (Math.Max((int)o + 1, 1)); } } catch{} return -1; } |
Сообщ.
#10
,
|
|
|
arbuzov, не учи плохому
между 2-мя запросами на выборку max и вставкой данных, в многопользовательском режиме может быть уже вставлено несколько записей, и при вставке записей ты получишь исключение о ограничении целостности. Так можно делать - если ты единственный клиент базы, и то - некрасиво. |
Сообщ.
#11
,
|
|
|
Цитата PIL @ arbuzov, не учи плохому между 2-мя запросами на выборку max и вставкой данных, в многопользовательском режиме может быть уже вставлено несколько записей, и при вставке записей ты получишь исключение о ограничении целостности. Так можно делать - если ты единственный клиент базы, и то - некрасиво. Но ведь можно сделать блокировку, чтобы никто не имел доступа на запись в таблицу в это время. Это займёт не так много времени... |
Сообщ.
#12
,
|
|
|
Цитата PIL @ первичный ключ должен присутствовать в таблице однозначно А вот взляните-ка на базу в аттаче, в которой во всех таблицах (кроме первой) просто нельзя сделать поля ключевыми из-за повторяющихся значений записей. Как быть? К этой же базе данных: А как сделать так, чтобы между таблицами в моей проге установить "связи" ("схема данных"- в Access'e) ? Причем в таблице ТОВАРЫ поле ЖАНРЫ заполняется с помощью раскрывающегося списка (подстановкой) из таблицы ЖАНРЫ. Тоже самое должно быть в моей проге. arbuzov, спсибо, учту это. |
Сообщ.
#13
,
|
|
|
Цитата PIL @ первичный ключ должен присутствовать в таблице однозначно А вот взляните-ка на базу в аттаче, в которой во всех таблицах (кроме первой) просто нельзя сделать поля ключевыми из-за повторяющихся значений записей. Как быть? К этой же базе данных: А как сделать так, чтобы между таблицами в моей проге установить "связи" ("схема данных"- в Access'e) ? Причем в таблице ТОВАРЫ поле ЖАНРЫ заполняется с помощью раскрывающегося списка (подстановкой) из таблицы ЖАНРЫ. Тоже самое должно быть в моей проге. arbuzov, спасибо, учту это. Кстати, я одним глазком видел, как делаются аналогичные проги в c++ builder - там там все это намного проще, даже писать ниче не пришлось, хотя технология доступа там ADO. Где все преимущества ADO.NET? Странно как-то получается! Прикреплённый файл________________.rar (17.42 Кбайт, скачиваний: 217) |
Сообщ.
#14
,
|
|
|
Цитата GRIENDERS @ А вот взляните-ка на базу в аттаче, в которой во всех таблицах (кроме первой) просто нельзя сделать поля ключевыми из-за повторяющихся значений записей. Как быть? - составной первичный ключ на несколько полей, или ввести еще одно поле которое будет первичным ключем, и сделать его счетчиком Цитата GRIENDERS @ Причем в таблице ТОВАРЫ поле ЖАНРЫ заполняется с помощью раскрывающегося списка (подстановкой) из таблицы ЖАНРЫ. Тоже самое должно быть в моей проге. - по моему грид умеет отображать дочерние записи |
Сообщ.
#15
,
|
|
|
Вопрос практически решен - RDAlex помог.
Но еще вопросик Цитата PIL @ по моему грид умеет отображать дочерние записи Может быть, но сначало надо же установить связи между таблицами. Как? |