ASP .NET с MySQL - используйте TINYINT с asp: Флажок - PullRequest
2 голосов
/ 09 сентября 2009

Для моей веб-страницы ASP .NET я использую базу данных MySQL с полем TINYINT, чтобы указать логическое значение (0/1).

Благодаря stackoverflow я смог прочитать значение поля в Listview в виде флажка asp:

 <asp:CheckBox ID="freight_foundCheckbox" runat="server"
     Checked='<%# Convert.ToBoolean(Eval("freight_found")) %>'  />

Что сейчас бросает мне вызов, так это как отменить транзакцию в InsertItemTemplate или EditItemTemplate .

Текстовое поле со списком читается как:

    <asp:TextBox ID="freight_foundTextBox" runat="server" 
       Text='<%# Bind("freight_found") %>' />

Как связать значение флажка asp: обратно в базу данных как целочисленное значение?

Ответы [ 3 ]

2 голосов
/ 09 сентября 2009

Этот веб-сайт текст ссылки чрезвычайно помог в решении этой проблемы.

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

Таким образом, для вставки установите событие ItemInserting с этим кодом:

CheckBox freightFound = (CheckBox)ListView2.InsertItem.FindControl("freight_foundCheckbox");
        if (freightFound.Checked == true)
        {               
            //true
            e.Values["freight_found"] = 1;
        }
        else
        {
            //false
            e.Values["freight_found"] = 0;
        }

А затем для редактирования установите событие ItemUpdating .

CheckBox freightFound = (CheckBox)ListView2.EditItem.FindControl("freight_foundCheckbox");

        if (freightFound.Checked == true)
        {
            //true               
            e.NewValues["freight_found"] = 1;
        }
        else
        {
            //false
            e.NewValues["freight_found"] = 0;
        }        
1 голос
/ 07 августа 2014

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

в своем выражении UPDATE или INSERT вы можете использовать это

IF (? = 'True', 1,0)

нет необходимости менять привязанное поле флажка на шаблон элемента или что-либо еще.

Я не уверен, имеет ли это значение, но я изменил свой тип параметра на Boolean, и, поскольку теперь он работает, я не хочу его менять.

0 голосов
/ 19 ноября 2009

Немного поздно здесь, но почему бы просто не привязать его непосредственно к флажку вместо текстового поля? Никакой код для обработки не нужен таким образом. Увидеть ниже. MySQL tinyint (1) преобразует напрямую в логическое значение .NET и обратно при использовании MySQL Connector / .NET.

<asp:CheckBox ID="freight_foundCheckbox" runat="server"
    Checked='<%# Bind("freight_found") %>'  />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...