Включение и отключение ячейки в Datagridview

Внутренние select запросы возвращают несколько строк. Это не разрешено в выражении if. Это было бы разрешено в чистом выражении in, но как только вы используете if, это больше не имеет места.

Так что переведите свою идею в серию OR:

SELECT * 
FROM   message 
WHERE  seen = '0'
  AND  receiver_delete ='0'
  AND  till_date IS NULL
  AND  (   (to_ = 'user'  AND id_receiver = '36')
       OR  (to_ = 'group' AND id_receiver IN ( 
            SELECT id 
            FROM   ( 
                     SELECT   * 
                     FROM     user_position 
                     ORDER BY id) user_position, 
                     (SELECT @pv := '100') initialisation 
            WHERE  FIND_IN_SET(parent_id, @pv) > 0 
               AND @pv := concat(@pv , ',' , id) 
           ))
       OR  (to_ NOT IN ('user', 'group') AND id_receiver IN (
            SELECT message_group.id 
            FROM   message_group 
            LEFT JOIN message_group_member 
                   ON message_group_member.id_group=message_group.id
            WHERE     message_group_member.id_user='36' 
           ))
       ) 

Я отмечаю, что вы используете назначения переменных в первом внутреннем запросе. Будьте осторожны с этим, так как нет гарантии относительно порядка исполнения. Я вижу, что подзапрос вдохновлен другим моим ответом , но, пожалуйста, обратите внимание на все отказы от ответственности и предупреждения в этом ответе. Они применяются здесь.

Если можете, перейдите на MySql 8 и рекурсивный синтаксис with.

20
задан Blorgbeard 30 June 2014 в 21:06
поделиться

1 ответ

Можно установить конкретную строку или ячейку, чтобы быть только для чтения, таким образом, пользователь не может изменить значение. Это то, что Вы имеете в виду?

dataGridView1.Rows[0].ReadOnly = true;
dataGridView1.Rows[1].Cells[2].ReadOnly = true;
16
ответ дан 29 November 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: