Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Cache Date type и С# / 5 сообщений из 5, страница 1 из 1
04.12.2017, 16:47
    #39563899
joing777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cache Date type и С#
Всем привет, делаю .net приложение на c#
В программировании не силен, начинающий
Ситуация такая в моем случае имеется сырая обертка, хочу сделать - связанные таблицы. Есть одна таблица gridview с именами и фамилиями(Human.Personal), но не могу понять как сделать связанную таблицу gridview2 которая находится на другой форме, где по вызову либо из программы по строке или по id, можно было бы увидеть раскрытую информацию во 2 таблице (личная информация Human.PersonalBook).
Изначально на форме-1 есть gridview и вызов таблицы осуществляется следующим кодом где
CacheConnection CacheConnect;
CacheDataAdapter conAdapter;
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
private void button5_Click(object sender, EventArgs e)
        {
            string select = "select ID, City, Firstname, Middle, Phone, Surname from Human.Personal";
            string insert = "insert into Human.Personal (City, Firstname, Middle, Phone, Surname) values (?, ?, ?, ?, ?)";
            string update = "update Human.Personal set City = ?, Firstname = ?, Middle = ?, Phone = ?, Surname = ? where ID = ?";
            string delete = "delete from Human.Personal where ID = ?";

            conAdapter = new CacheDataAdapter(select, CacheConnect);

            conAdapter.UpdateCommand = CacheConnect.CreateCommand();
            conAdapter.UpdateCommand.CommandText = update;
            AddParams(conAdapter.UpdateCommand, "City", "Firstname", "Middle", "Phone", "Surname", "ID");

            conAdapter.InsertCommand = CacheConnect.CreateCommand();
            conAdapter.InsertCommand.CommandText = insert;
            AddParams(conAdapter.InsertCommand, "City", "Firstname", "Middle", "Phone", "Surname");

            conAdapter.DeleteCommand = CacheConnect.CreateCommand();
            conAdapter.DeleteCommand.CommandText = delete;
            AddParams(conAdapter.DeleteCommand, "ID");

            conAdapter.Fill(dataset1, "Personal");

        }



Как можно заметить среди прочего, нет колонок с датой (тип date). В cache студии создал еще один класс Human.PersonalBook унаследованный от Human.Personal но как реализовать связь в программе не могу понять и как работать с переменными с типом Date (свойство класса Property Date As %Date которое SQL запросами не вызывается ошибка: "Ожидается (, обнаружено ,^ SELECT ID , DATE ," . Помогите разобраться, в инете тоже информацию не могу найти. Возможно нельзя Свойства называть "Date", прошу пояснить нужно ли гдето преобразовывать этот тип ?
...
Рейтинг: 0 / 0
04.12.2017, 17:21
    #39563929
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cache Date type и С#
joing777,

В документации, Cписок зарезервированных слов в SQL
Желательно переименовать поле, или можно использовать двойные кавычки для таких свойств.
Код: sql
1.
select ID, "Date", City, Firstname, Middle, Phone, Surname from Human.Personal
...
Рейтинг: 0 / 0
04.12.2017, 17:52
    #39563953
joing777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cache Date type и С#
DAiMor,

Да, спасибо, переименовал, получилось, но теперь проблема возникает с тем, что в с# формат отображения в gride 10.10.2010 а в таблицах каше дата сохраняется в формате 10/10/2010 и при попытке в каше в портале управления системой завести в формате 10.10.2010 выходит ошибка

[SQLCODE: <-146>:<Не удалось конвертировать введенное значение в Логический формат Даты>]

[%msg: <Error: '10.10.2010' is an invalid DISPLAY Date value>]

Т.е. при загрузке данных в datagridview методом из 1 поста дата не отображается в программе, ячейка пустая. При попытке перезаписать в программе используя формат 10.10.2010 выходит ошибка,

Код: c#
1.
2.
3.
<-25>:<Обнаружен ввод выражения после окончания запроса>]
[Location: <Prepare>]
[%msg: < Обнаружен ввод выражения (ИДЕНТИФИКАТОР) после окончания запроса^update Human . PersonalBook set Bilet = :%qpar(1) , NumberBook = :%qpar(2) , Books = :%qpar(3) , Daten = :%qpar(4) , Daysn = :%qpar(5) Quantity>]"



формат автоматически исправляется с 10/10/2010 на 10.10.2010, в свойствах колонок такого формат нет вообще.
...
Рейтинг: 0 / 0
04.12.2017, 18:59
    #39563999
eduard93
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cache Date type и С#
joing777, посмотрите примеры работы с C# в папке: <instance>\dev\dotnet\samples\, например в классе <instance>\dev\dotnet\samples\adoform\csharpado\frmADONET.cs в методе btnUpdate_Click есть такой код:

Код: c#
1.
2.
3.
4.
5.
CacheParameter	pDOB	= new CacheParameter();
pDOB.ParameterName		= "DOB";
pDOB.CacheDbType			= CacheDbType.Date;
pDOB.Direction			= ParameterDirection.Input;
pDOB.Value				= txtDOB.Text;
...
Рейтинг: 0 / 0
04.12.2017, 20:25
    #39564022
joing777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cache Date type и С#
eduard93,

Спасибо дорогой друг, понял ошибки, исправил + я пропустил одну колонку.

Вопрос основной решил выборкой SQL запросом по ID
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Cache Date type и С# / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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