![]() |
|
Модераторы: gambit |
![]()
|
|
| shark1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Подскажите как такое исполнить.Есть table в Access,в ней всего несколько полей для отображения наличия деталей на складе.Вопрос как так закрутить чтоб было видно сколько получено было деталей,сколько есть на данный момент и сколько использовано.Все это пытаюсь сделать на C#.Зарание огромное спасибо.
|
|||
|
||||
| 1stain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 30.7.2007 Где: Киев - Харьков Репутация: 5 Всего: 40 |
структуру таблицы, как я понимаю ты объяснишь по телепатическому каналу связи?
-------------------- Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein) ![]() |
|||
|
||||
| shark1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Извени 1stain ,таблица такая Id,специальный номер детали,кол.полученых деталей,дата получения,сколько затраченно деталей,сколько осталось деталей.Вроде так,Спасибо.
|
|||
|
||||
| 1stain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 30.7.2007 Где: Киев - Харьков Репутация: 5 Всего: 40 |
не понял, в чем проблема. Вроде вся нужная информация лежит в таблице в готовом виде (что по-моему для таблицы довольно-таки странно) - бери и вытаскивай SELECT * FROM ...
-------------------- Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein) ![]() |
|||
|
||||
| unicuum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: нет Всего: 8 |
В Access делаешь такую таблицу
Таблица tblDetails (детали): поле описание
Потом соединяешься с этой базой заливаешь в DataGridView и всё. Ну а что тут ещё сказать P.S. Вообще-то говоря поле fldRemained осталось вычисляемым и его вводить в таблицу не нужно, потому я пометил его серебряным, а для вычисления выражений есть как минимум два пути. 1. Взять выражение в запросе. 2. Вычислить его в отсоединённом объекте Первый способ плох тем что запрос каждый раз придётся заново делать, так как изменение полей ничего не даёт. Ну для второго нужно делать отсоединённые объекты, но если данные отображаются в DataGrid или DataGridView, то они уже по существу есть. Заюзать второй способ можно использовав свойство столбца: Namespace: System.Data Assembly: System.Data (in system.data.dll) DataColumn.Expression Property Локальная ссылка в MSDN 2003 ms-help://MS.VSCC.2003/MS.MSDNQTR.2004JUL.1033/cpref/html/frlrfsystemdatadatacolumnclassexpressiontopic.htm Локальная ссылка в MSDN 2005 ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref4/html/P_System_Data_DataColumn_Expression.htm Ну, а примеры там и так простые, нужно из одного столбца вычесть другой, что и прописать в выражении "Received - Spent", именно столбца. Тогда когда ячейки со значениями будут меняться, выражение будет для этих рядов пересчитываться. А вообще, так сразу трудно догадаться, что челам нужно на этом форуме. Пишут что попало, нет сразу сказать, что нужно автоматически вычислять выражение. P.S. после P.S. Телепат моё второе имя Это сообщение отредактировал(а) unicuum - 9.12.2007, 03:20 -------------------- ![]() обычный день на винграде |
|||
|
||||
| shark1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Спасибо unicuum,вот тут что то застрял.На этом отрезке :
выдает такую Exception: System.NullReferenceException was unhandled Message="Object reference not set to an instance of an object." где сделал ошыбку подскажите.Зарание спасибо. |
|||
|
||||
| shark1 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Спасибо с этим разобрался,Теперь подскажите вот что,на форме есть пару кнопок:
1)Add in Db; 2)View DB; соответственно в обработчике одной заношу данные в базу,а во второй показываю в дата гриде.Почемуто когда я показываю данные все отображается как надо,но при этом при попытке сохранить что то в базе выдает ошибку,а если не показываю а только сохроняю то все работает отлично.Подскажите в чем ошибочка.Зарание спасибо.
|
||||
|
|||||
| unicuum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: нет Всего: 8 |
Смотря на твой код хочется его перечеркнуть
Начнём с того, что всё делается не правильно, в БД не нужно изобретать велосипед, нужно пользоваться зарекомендовавшими себя способами. 1. Не правильно пользуется try. (Close стоит не там где ему положено быть, не правильно поставлен отлов исключений) 2. Не правильно задаются параметры. (откровенно говоря они вообще не задаются, а идёт попытка создать запрос на основе сложения строк, это в корне не верно для присоединённых объектов, а для отсоединённых вообще не приемлимо) Прежде чем двигаться дальше прочти вот эту тему Вставка большого обьема данных в БД Access, порядка 30-40 тысяч строк А здесь смотрели?, недавно обсуждали как вставлять строки присоединённым способом. Сначала мы перетёрли код на VB.NET, когда строки добавляются присоединённым способом, а под конец thomas дал код на C#, но уже для отсоединённых объектов. Впрочем таких примеров в MSDN миллион и три тележки. Ну так вот, если тебе надо просто добавлять строчки, то можно делать это присоединённым способом, но не так как у тебя, а используя параметры. Сразу предупреждаю, то как сделалано у тебя, вообще не приемлимо, это издевательство над наукой. Я думаю с присоединённым способом тебе не составит труда разобраться прочитая топик про добавление строк, но если у тебя используется DataColumn.Expression, то тут однозначно нужен отсоединённый способ, с его традиционным вызовом методов DataAdapter'а Fill и Update. Ознакомится с ним можно в том же топике. Вердикт таков, твой код не нужно исправлять, его нужно полностью переписывать, потому что он сплошная ошибка. Исправить я его к сожалению не могу, так как надо всё переделывать заново. Мои рекомендации таковы, выкачай из интернета книгу "Дэвид Сеппа - Microsoft ADO.NET", оттуда же можно выкачать и примеры. Хотя книг по .NET базам данных много, это я считаю наиболее простая и между тем позволяющая изучить многие тонкости ADO.NET. -------------------- ![]() обычный день на винграде |
|||
|
||||
| shark1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 10.11.2007 Репутация: нет Всего: нет |
Спасибо огромное за замечания,буду исправлятся,и учится делать как надо.Но честно сказать весь этот код отлично работает я его немного подправил и без проблем.Ну да ладно век живи век учись.Спасибо.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |