powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
19 сообщений из 19, страница 1 из 1
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38557404
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
this.connection.ClearParameters();
                this.connection.CmdText = @"
                    EXECUTE [svn].[get_info_srpavka] @id_contract";
                this.connection.AddInputParameter("id_contract", System.Data.SqlDbType.Int, contract.Id);
                object[] record_info_spravka = this.connection.ExecuteReadAllRec();
                {
                    fields.Add(new object[] { 2002, this.connection.ExecuteReadAllRec() });
                }



Прошу помощи, как мне обратиться к полю record_info_spravka
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38557433
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
record_info_spravka.GetValue(2)

даёт ошибку
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38557443
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovec, а так:
Код: c#
1.
record_info_spravka[1];

?
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38557460
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANANewIvanovec, а так:
Код: c#
1.
record_info_spravka[1];

?
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38557463
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

Error Run - Run -
Exception: Ошибка запуска сборки шаблона:
System.IndexOutOfRangeException: Индекс находился вне границ массива.

Реально процедура возвращает данные: см. скрин
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38557513
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovecСломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
this.connection.ClearParameters();
                this.connection.CmdText = @"
                    EXECUTE [svn].[get_info_srpavka] @id_contract";
                this.connection.AddInputParameter("id_contract", System.Data.SqlDbType.Int, contract.Id);
                object[] record_info_spravka = this.connection.ExecuteReadAllRec();
                {
                    fields.Add(new object[] { 2002, this.connection.ExecuteReadAllRec() });
                }



Прошу помощи, как мне обратиться к полю record_info_spravkaПоиграем в угадайку...
Хрустальный шар почему-то не показывает, какого типа у Вас connection и fields .
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38557546
Sergey S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще вопрос может быть с процедурой....
В процедуре установлен
Код: sql
1.
SET NOCOUNT ON

?
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38557677
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovecskyANA,

Error Run - Run -
Exception: Ошибка запуска сборки шаблона:
System.IndexOutOfRangeException: Индекс находился вне границ массива.

Реально процедура возвращает данные: см. скринЖесть. Если у Вас одна запись, то какого GetValue(2)?

Ошибка говорит о том, что в массиве record_info_spravka меньше двух элементов. Вы говорите, что данные там есть.
Следовательно там ровно один элемент.

Тогда так:
Код: c#
1.
record_info_spravka[0];
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38558044
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANANewIvanovecskyANA,

Error Run - Run -
Exception: Ошибка запуска сборки шаблона:
System.IndexOutOfRangeException: Индекс находился вне границ массива.

Реально процедура возвращает данные: см. скринЖесть. Если у Вас одна запись, то какого GetValue(2)?

Ошибка говорит о том, что в массиве record_info_spravka меньше двух элементов. Вы говорите, что данные там есть.
Следовательно там ровно один элемент.

Тогда так:
Код: c#
1.
record_info_spravka[0];


так всё нормально. Объясните Неучу, как теперь обратиться любому из полей одномерного массива.
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38558057
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewIvanovec,

доступны только 4 пункта:
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38558062
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey SЕще вопрос может быть с процедурой....
В процедуре установлен
Код: sql
1.
SET NOCOUNT ON

?
не установлен.
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38558073
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sphinx_mvNewIvanovecСломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
Для ответа на вопрос привожу весь код программы
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
this.connection.ClearParameters();
                this.connection.CmdText = @"
                    EXECUTE [svn].[get_info_srpavka] @id_contract";
                this.connection.AddInputParameter("id_contract", System.Data.SqlDbType.Int, contract.Id);
                object[] record_info_spravka = this.connection.ExecuteReadAllRec();
                {
                    fields.Add(new object[] { 2002, this.connection.ExecuteReadAllRec() });
                }



Прошу помощи, как мне обратиться к полю record_info_spravkaПоиграем в угадайку...
Хрустальный шар почему-то не показывает, какого типа у Вас connection и fields .

Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Globalization;
using UbsService;
using UbsBusiness;
//using clsAmountInWords;

namespace FO_macros_spravka
{
    // Созданный нами класс должен обязательно имплементировть 
    // интерфейс IUbsObject (поддержать его)
    public class UserPrintFieldsDocument0 : IUbsObject
    {
        // Здесь объявляются ваши переменные (readonly) означает
        // переменные доступные только для чтения которые 
        // инициализируются только в конструкторе класса
        private readonly IUbsDbConnection connection;
        private readonly IUbsWss ubs;
        private readonly string settingBicMainBranch;
        private readonly UbsUsersCard userCard;
        private readonly UbsDivision division;
        private readonly short idUser;
        private static readonly DateTimeFormatInfo formatDate = new DateTimeFormatInfo()
        {
            ShortDatePattern = "dd.MM.yyyy",
            LongDatePattern = "dd MMMM yyyy г.",
            MonthGenitiveNames = new string[] { 
                "января", "февраля", "марта",
                "апреля", "мая", "июня",
                "июля", "августа", "сентября",
                "октября", "ноября", "декабря", "" }
        };
        public UserPrintFieldsDocument0(IUbsDbConnection connection, IUbsWss ubs)
        {
            // На необходимые интерфейсы мы сохраняем ссылки
            this.connection = connection;
            this.ubs = ubs;

            // Вот так к примеру можно создать объекты: карточка
            // пользователя и карточка отделения
            this.userCard = new UbsUsersCard(this.connection, this.ubs);
            this.division = new UbsDivision(this.connection, this.ubs);

            // Вот так можно прочесть установку
            this.settingBicMainBranch = (string)this.ubs.UbsWssParam("Установка", "Основные установки", "БИК головного филиала");

            // Или получить идентификатор текущего пользователя
            this.idUser = (short)this.ubs.UbsWssParam("Идентификатор пользователя");

        }
        public object Command(string NameCommand, params object[] prm)
        {
            if ("UserPrintFields".Equals(NameCommand, StringComparison.OrdinalIgnoreCase))
            {
                // Вот так можно выполнить запрос
                this.connection.ClearParameters();
                this.connection.CmdText = @"
                    select fullname 
                    from users  
                    where 
                        usernum = @ID_USER";
                this.connection.AddInputParameter("ID_USER", System.Data.SqlDbType.Int, this.idUser);
                object[] record = this.connection.ExecuteReadFirstRec();
                UbsFOCrApp contract = (UbsFOCrApp)prm[0];
                //UbsFOCrAppProduct contract = (UbsFOCrAppProduct)prm[0];
                //UbsComClient client = (UbsComClient)prm[2];
                //client.Birthday
                // Вторым параметром идет список макроподстановок
                List<object[]> fields = (List<object[]>)prm[1];
                
                //string texta = new DateTime(2013, 9, 12).ToString("D");
                string text = DateTime.Today.ToString("dd MMMM yyyy");
                //string text_small = DateTime.Today.ToString("dd.MM.yyyy");
                fields.Add(new object[] { 2000, text });
                //fields.Add(new object[] { 2001, text_small });
                // информация по кредиту                
                //string tt=Сумма.Пропись(100.00, Валюта.Рубли); // "сто рублей 00 копеек"                
                this.connection.ClearParameters();
                this.connection.CmdText = @"
                    EXECUTE [svn].[get_info_srpavka] @id_contract";
                this.connection.AddInputParameter("id_contract", System.Data.SqlDbType.Int, contract.Id);
                object[] record_info_spravka = this.connection.ExecuteReadAllRec();
                {
                    fields.Add(new object[] { 2002, this.connection.ExecuteReadAllRec() });
                }
                string tt1 = Число.Пропись (5, new ЕдиницаИзмерения (
                РодЧисло.Мужской, "месяц", "месяца", "месяцев")); // "пять метров"
                //string text_prop = Сумма.Пропись(100, Валюта.Рубли);  //Валюта.Рубли.Пропись(123.45); //Сумма.Пропись(100, Валюта.Рубли);                                
                fields.Add(new object[] { 2001, tt1});
                fields.Add(new object[] { 1001, record_info_spravka[0].});                

                return null;
            }
            throw new NotImplementedException();
        }
        // Данные методы интерфейса IUbsObject при печати не используются
        public void Field(string Name, object newVal) { throw new NotImplementedException(); }
        public object Field(string Name) { throw new NotImplementedException(); }
    }
}
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38558090
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovec
Код: c#
1.
2.
3.
4.
                object[] record_info_spravka = this.connection.ExecuteReadAllRec();
                {
                    fields.Add(new object[] { 2002, this.connection.ExecuteReadAllRec() });
                }


Странная конструкция. А просто написать fields.Add(new object[] { 2002, record_info_spravka }); нельзя? Без всяких скобок, без лишних вызовов к БД?

Далее, нужно описание класса, реализующего ваш IUbsDbConnection, так как до сих пор неясно, что возвращается по ExecuteReadAllRec (догадки не в счет).

NewIvanovec
Код: c#
1.
исло.Пропись (5, new ЕдиницаИзмерения 


Трэш полный. Я против русских названий ничего не имею, но уж если вы их используете, так используйте везде. Микс ненужен, и раздражает глаз.
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38558097
NewIvanovec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Arm79]NewIvanovec
Код: c#
1.
2.
3.
4.
                object[] record_info_spravka = this.connection.ExecuteReadAllRec();
                {
                    fields.Add(new object[] { 2002, this.connection.ExecuteReadAllRec() });
                }


Странная конструкция. А просто написать fields.Add(new object[] { 2002, record_info_spravka }); нельзя? Без всяких скобок, без лишних вызовов к БД?

Далее, нужно описание класса, реализующего ваш IUbsDbConnection, так как до сих пор неясно, что возвращается по ExecuteReadAllRec (догадки не в счет).



C:\UBS_SYSTEM\ASM\SYSTEM\UbsDbConnection.dll
Поэтому не смогу предоставить описание.
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38558099
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovecC:\UBS_SYSTEM\ASM\SYSTEM\UbsDbConnection.dll
Поэтому не смогу предоставить описание.

http://www.red-gate.com/products/dotnet-development/reflector/
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38558100
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovecОбъясните Неучу, как теперь обратиться любому из полей одномерного массива.Книжку себе купите о C#.
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38558285
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewIvanovecтак всё нормально. Объясните Неучу, как теперь обратиться любому из полей одномерного массива.Можно обратиться к элементу одномерного массива по индексу. И обращаться к полям уже для этого элемента...

PS. Меня терзают смутные сомнения (с) - Вы вообще на каком языке программирования "специализируетесь"?
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38559890
Sergey S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так проблема решилась?
В
Код: c#
1.
record_info_spravka[0]


что попадает?
...
Рейтинг: 0 / 0
Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
    #38560047
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey S, 15554865
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сломал голову, размышляя над чужим кодом, при этом, не понимая в c# ничего.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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