powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выставить значение в TextBox
33 сообщений из 33, показаны все 2 страниц
Выставить значение в TextBox
    #39899957
Anna1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите пожалуйста как сделать что бы значения TextBox1 прописывалось автоматом, что бы не заполнять? В виде внутреннего номера договора. В базе access
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39899981
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. А можно конкретизировать вопрос? А то он пока выглядит как "сначала выпытайте у меня описание моей инфраструктуры, а потом напишите мне программу"
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900020
Anna1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощение за мое описание, есть база с договорами, у каждого договора есть свой номер который заносится в ручную, но хотелось бы сделать что бы присваивался дополнительно внутренний договор, и проставлялся автоматически последовательно например
Внутренний № 11-19 №договора 1234567
Внутренний № 12-19 №договора 7545648
Внутренний № 13-19 №договора 245456п
Внутренний № 14-19 №договора 2454577

Все будет заноситься через форму в VB.NET
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900027
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо, а проблема-то у вас в чем конкретно? Не можете подключиться к базе, не можете написать запрос, не можете вставить текст в текстбокс, не можете посчитать следующий номер?
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900039
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
я тут посижу, засеку время на сколько у Вас терпения хватит.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900048
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub
Shocker.Pro,
я тут посижу, засеку время на сколько у Вас терпения хватит.
Будучи в состоянии сарказма, ты не познаешь дзэн, сколько не сиди
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900058
Anna1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К базе то подключился, а как выставить что бы номера ставились автоматом
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900066
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anna1111
К базе то подключился, а как выставить что бы номера ставились автоматом

- прочитать из базы последний задействованный номер
- инкрементировать этот номер
- положить его в текстбокс
- при записи убедиться, что другой пользователь не занял этот номер и предпринять нужные действия, согласно вашей бизнес-логике
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900082
Anna1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста как это сделать?
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900093
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в который раз спрашиваю, что именно? Вот я написал четыре пункта, что из этого вызывает вопросы?

Если вы хотите, чтобы за вас сделали вашу работу - вам не сюда, а на сайты фрилансеров.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900098
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
я честно надеялся, что Вы сможете в дзен.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900101
Anna1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как взять из базы последний номер?
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900107
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anna1111,
в простейшем варианте
Код: sql
1.
select top 1 t.ID from table as t order by t.ID desc
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900108
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anna1111
Как взять из базы последний номер?
в общем случае - написать соответствующий SQL-запрос.
Детали будут зависеть от того, как там хранятся другие номера и сопутствующая информация, как они выглядят в общем случае, какая нужна дополнительная фильтрация (например разная нумерация в зависимости от юрлица) а также по какому принципу вы планируете брать номер - из последнего созданного договора или максимальный номер по какому-либо критерию.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900111
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub
Anna1111,
в простейшем варианте
Код: sql
1.
select top 1 t.ID from table as t order by t.ID desc

Садись, два!
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900121
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
- при записи убедиться, что другой пользователь не занял этот номер и предпринять нужные действия, согласно вашей бизнес-логике

ИМХО проще вообще не показывать номер пока не сохранил в БД. В этом случае присвоение произойдет в момент сохранения в БД.
Если нумерация сквозная то можно поле сделать с автоинкрементом и БД будет выдавать номера.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900123
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
почему же если id - автоинкремент, то таким запросом и получаем последнюю id.
Проверил 3 раза.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900131
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDENT_CURRENT('table_or_view') - возврат последнего значения идентификатора, созданного для указанной таблицы.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900141
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub
Shocker.Pro,
почему же если id - автоинкремент, то таким запросом и получаем последнюю id.
Проверил 3 раза.

Код: sql
1.
select max(id) from my_table


Но, готов забить, что план выполнения будет один и тот же :)
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900145
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
во первых мы не знаем какая БД у ТС.
Вряд ли на всех БД эта команда запустится.
Я знаю, что приведенная мною SQL-команда несовершенна, неоптимальна, но она будет гарантированно работать без вопросов и подводных камней в гораздо большем диапазоне случаев, чем
Код: sql
1.
IDENT_CURRENT('table_or_view')


тем более ТС лучше начать с более простого варианта, чтобы не запутаться еще больше.
Ваш вариант более верный для профессиональной разработки.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900166
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
vb_sub
Shocker.Pro,
почему же если id - автоинкремент, то таким запросом и получаем последнюю id.
Проверил 3 раза.

Код: sql
1.
select max(id) from my_table


Но, готов забить, что план выполнения будет один и тот же :)


Эх зря забился- проиграл бы.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900167
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900171
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub
Dima T,
во первых мы не знаем какая БД у ТС.

Знаем, я невнимательно читал
Anna1111
В базе access

Вариант с IDENT_CURRENT не подходит.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900179
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub
мы не знаем какая БД у ТС.
вообще-то знаем
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900182
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub
Shocker.Pro,
почему же если id - автоинкремент, то таким запросом и получаем последнюю id.
Проверил 3 раза.
Потому что если номер отображается в текстбоксе на момент начала редактирования, то сохраняться они могут пользователями в другой последовательности, чем создавались. ТЕм более, если пользователь вообще отредактирует этот номер (иначе зачем текстбокс)

Кроме того, могут быть параллельно несколько нумераций, например новая нумерация с начала года и т.п. Или, допустим, недопустимы пробелы в нумерации. В общем, лучше сразу не наступать на все эти грабли
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900193
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anna1111
№ 11-19
А еще я боюсь, что у ТС ненормализованное хранение номеров и хранятся они прямо в таком виде, что естественно усложняет поиск нужного номера.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900194
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
с базой я прошляпил.
А про sql- запрос я просто захватил локальный контекст вопроса .
Для захвата более обширного контекста, к сожалению недостаточно конкретно описана ситуация.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900300
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Задача ведь стара как мир - я эту фигню еще на досовском фокспро руками делал - заводится таблица всего с одной строкой и одним-единственным значением для автоинкрементного счетчика, а дальше все понятно. Правда, в результате могут быть пропуски в нумерации, если автоинк делать не в момент сохранения, а с самого начала, но, как правило, это не важно.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900310
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub

По сути одно и то же. И там и там просто крайняя запись в индексе выбирается.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900341
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Shocker.Pro,

Задача ведь стара как мир - я эту фигню еще на досовском фокспро руками делал - заводится таблица всего с одной строкой и одним-единственным значением для автоинкрементного счетчика, а дальше все понятно. Правда, в результате могут быть пропуски в нумерации, если автоинк делать не в момент сохранения, а с самого начала, но, как правило, это не важно.
ну вот это и говнокод. Ты будешь каждый год новую таблицу создавать? И под каждую новую организацию? А когда к тебе бухгалтер придет и спросит, почему у тебя пробелы в нумерации, ты будешь рассказывать ему про откаты транзакций? ну-ну
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900390
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
fkthat
Shocker.Pro,

Задача ведь стара как мир - я эту фигню еще на досовском фокспро руками делал - заводится таблица всего с одной строкой и одним-единственным значением для автоинкрементного счетчика, а дальше все понятно. Правда, в результате могут быть пропуски в нумерации, если автоинк делать не в момент сохранения, а с самого начала, но, как правило, это не важно.
ну вот это и говнокод. Ты будешь каждый год новую таблицу создавать? И под каждую новую организацию? А когда к тебе бухгалтер придет и спросит, почему у тебя пробелы в нумерации, ты будешь рассказывать ему про откаты транзакций? ну-ну

Ну, я имел в виду обычный целый автоинк для искуственного ключа. В фокспро identity() просто не было от слова не было вообще и решение со спецтаблицей-счетчиком оно как раз и считалось самым правильным (и, по сути identtity примерно так и работает, только там этот счетчик запрятан). А с выборкой максимального значения это вот как раз и есть кривизна полная. Я выбрал значение 167, а пока я его увеличивал на 1 и заполнял остальные поля, то ты за это время тоже выбрал 167 (поскольку я свою запись еще не сохранил), и привет рейс кондишен.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900397
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
А с выборкой максимального значения это вот как раз и есть кривизна полная. Я выбрал значение 167, а пока я его увеличивал на 1 и заполнял остальные поля, то ты за это время тоже выбрал 167 (поскольку я свою запись еще не сохранил), и привет рейс кондишен.
Поэтому я и написал п.4 - проверка перез записью. Посмотри, как работает 1С - именно так.
...
Рейтинг: 0 / 0
Выставить значение в TextBox
    #39900453
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Поэтому я и написал п.4 - проверка перез записью. Посмотри, как работает 1С - именно так.

Ну, при всем уважении к 1с, подозреваю, что то, как она работает это, по крайней мере, не всегда, образец для подражания :) Я, например, позвонил уже своему Боссу и "Иван ван Ваныч", у документа номер вот такой-то, а тут выясняется, что я его сохранить под этим номером не могу, потому что какой-то выскочка меня опередил. И, потом еще, у меня такое подозрение, что если сохранение с проверкой проводить под read committed, то все-таки могут возникать "пропуски" из-за "фантомных записей", а если выставить уровень "repeatable read" то может быть дедлок.
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выставить значение в TextBox
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]