powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Dapper извлечение bool
12 сообщений из 12, страница 1 из 1
Dapper извлечение bool
    #38728725
Фотография Farfarello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
процедура извлечения свойства таблицы

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            public void SetTableProperties(DBTable dbTable)
            {
                foreach (bool b in connection.Query<bool>("SELECT EDITABLE FROM TABL" +
                                        " WHERE TABL_CODE = @TABL_CODE", new { TABL_CODE = dbTable.TableRowClass.Name } ) )
                {
                    dbTable.Editable = b;
                    return;
                }
                return;
            }



При замене @TABL_CODE на null, возвращает 0 строк, но при корректном параметре происходит "Object reference not set to an instance of an object."
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38728742
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Farfarello
Код: c#
1.
@TABL_CODE", new { TABL_CODE = dbTable.TableRowClass.Name }


Я не работал с Dapper , могу и ошибаться, но кажется, что именно такое присваивание через анонимный тип может ломать всю логику

Вот сделайте код аналогично этому:
Код: c#
1.
2.
3.
4.
5.
string sql = "select * from Account where Id = @id and username = @name";
var values = new DynamicParameters(); // вместо анонимного типа использовать динамические параметры
values.Add("id", 1);
values.Add("name", "bob");
var accounts = SqlMapper.Query<Account>(connection, sql, values);
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38728752
Фотография Farfarello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помогло.

Object reference not set to an instance of an object.
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38728753
Фотография Farfarello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
            public void SetTableProperties(DBTable dbTable)
            {
                DynamicParameters values = new DynamicParameters();
                values.Add("TABL_CODE", dbTable.TableRowClass.Name);

                foreach (bool b in connection.Query<bool>("SELECT EDITABLE FROM TABL" +
                                        " WHERE TABL_CODE = @TABL_CODE", values ) )
                {
                    dbTable.Editable = b;
                    return;
                }
                return;
            }
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38728759
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FarfarelloНе помогло.

Object reference not set to an instance of an object.

1) А на какой объект ругается? в какой строке Exception?
2) Попробуйте вручную задать значение TABL_CODE (прямо в строке, не через параметры)
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38728772
Фотография Farfarello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) А на какой объект ругается? в какой строке Exception?
2) Попробуйте вручную задать значение TABL_CODE (прямо в строке, не через параметры)

1) в строке с connection.Query
2) проверял - exception, только при null не происходит...
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38728814
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не воспроизводится:

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE [dbo].[Table] (
    [Id]   INT           IDENTITY (1, 1) NOT NULL,
    [Num]  INT           NULL,
    [Text] NVARCHAR (50) NULL,
    [Flag] BIT           DEFAULT ((1)) NOT NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);



Код: c#
1.
2.
3.
4.
5.
6.
7.
    class Test
    {
        public int Id { get; set; }
        public int Num { get; set; }
        public string Text { get; set; }
        public bool Flag { get; set; }
    }


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            using (var con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename="(путь к)Database1.mdf";Integrated Security=True"))
            {
                con.Open();

                IEnumerable<Test> enumerable = con.Query<Test>("select [Id], [Num], [Text], [Flag] from [Table] where [Num] > @Num", new {Num = 22});

                dataGridView1.DataSource = new BindingList<Test>(enumerable.ToList());

                con.Close();
            }



Все работает
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38728897
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай проверил еще и так:
Код: c#
1.
IEnumerable<bool> enumerable = con.Query<bool>("select [Flag] from [Table] where [Num] > @Num", new { Num = 22 });



Тоже в список перечислений данные ложатся верно (как список из bool)
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38728927
Фотография Farfarello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия Dapper?
В моем случае 1.25.
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38728953
Фотография Farfarello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
            public void SetTableProperties(DBTable dbTable)
            {
                DynamicParameters values = new DynamicParameters();
                values.Add("TABL_CODE", dbTable.TableRowClass.Name);

                foreach (string str in connection.Query<string>("SELECT TABL_DESCRIPT FROM TABL" +
                                        " WHERE TABL_CODE = @TABL_CODE", values))
                {
                    dbTable.Description = str;
                    break;
                }

                return;
            }



Извлекаю строку - все ок.
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38729041
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FarfarelloВерсия Dapper?
В моем случае 1.25.
1.30.0.0

FarfarelloИзвлекаю строку - все ок.
Не надо делать Query<примитивный тип>
Делайте Query<Класс>

Сделайте класс с свойством типа Bool и попробуйте снова ваш запрос.
...
Рейтинг: 0 / 0
Dapper извлечение bool
    #38734032
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не понимаю в ваших дапперах, но вот здесь случайно не нужен @ ?

Код: c#
1.
 values.Add("@TABL_CODE", dbTable.TableRowClass.Name);
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Dapper извлечение bool
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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