asp.net
  • mysql
  • 2009-09-09 46 views 2 likes 
    2

    對於我的ASP .NET網頁,我正在使用帶有TINYINT字段的MySQL數據庫來表示布爾值(0/1)。ASP .NET與MySQL - 使用TINYINT與asp:複選框

    感謝stackoverflow我能夠將字段值作爲asp:複選框讀入Listview。

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

    現在什麼是我的挑戰是如何扭轉在InsertTemplate則EditItemTemplate中交易。

    ListView的文本讀作:

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

    如何綁定一個ASP:複選框值回數據庫作爲一個整數值?

    回答

    2

    本網站link text是解決此問題的極大幫助。

    關鍵是在寫入數據庫之前捕獲值並將其轉換爲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; 
         }   
    
    0

    這裏稍晚些,但爲什麼不直接將它直接綁定到複選框而不是文本字段?沒有任何需要處理的代碼。見下文。當使用MySQL Connector/.NET時,MySQL tinyint(1)直接轉換爲.NET布爾值並返回。

    <asp:CheckBox ID="freight_foundCheckbox" runat="server" 
        Checked='<%# Bind("freight_found") %>' /> 
    
    1

    我知道這真的很老,但我只是花了幾個小時試圖讓這個排序。

    在UPDATE或INSERT語句

    您可以使用此

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

    無需更改綁定CheckBoxField字段到項目模板或任何東西。

    我不知道,如果它的問題,但我改變了我的參數類型布爾和我現在有工作,我不想改變它。

    +0

    最簡單的方法。 – Joel 2014-10-17 02:06:03

    相關問題