2017-03-01 23 views
-2

ブール値では、真または偽の2つの値を渡すことができますが、ドロップダウンリストの第3の値(Null)を渡そうとします。approved= true(1), rejected=false(0), pending= (NULL)ヌル値他ブール型のドロップダウンリストからNULL値をデータベースに渡す#

<td> 
    <asp:DropDownList ID="DropDownList3" runat="server" OnSelectedIndexChanged="DropDownList3_SelectedIndexChanged"> 
     <asp:ListItem Value="DBNull">Pending For Approval</asp:ListItem> 
     <asp:ListItem Value="1">Approve</asp:ListItem> 
     <asp:ListItem Value="0">Reject</asp:ListItem> 
    </asp:DropDownList> 
</td> 

を渡すことができる(e.CommandName == "APPROVE")であれば{

  bool? Status = null; 
      string Request_ID = ((Label)e.Item.FindControl("Label1")).Text; 
      string Employee_ID = ((Label)e.Item.FindControl("Label2")).Text; 
      string Certification_Name = ((Label)e.Item.FindControl("Label3")).Text; 
      string Issue_Date = ((Label)e.Item.FindControl("Label4")).Text; 
      string Valid_Till_Date = ((Label)e.Item.FindControl("Label5")).Text; 
      string Status = ((DropDownList)e.Item.FindControl("DropDownList3")).SelectedItem.Value; 
      string Requested_On = ((Label)e.Item.FindControl("Label6")).Text; 
      string Approved_By = ((Label)e.Item.FindControl("Label8")).Text; 
      string Approved_On = ((Label)e.Item.FindControl("Label9")).Text; 
      SqlCommand cmd = new SqlCommand("update Request_For_External_Certification set Status='" + Status + "' where Request_ID=" + Request_ID, con); 
      con.Open(); 
      cmd.ExecuteNonQuery(); 
      con.Close(); 

      FillData(); 

エラーが変換しようとしたビット にヌル値を変換する..failed表示されて値段も運行はありません

string status = Convert.ToBoolean(DropDownList2.SelectedItem.Value) 

答えて

1

あなただけまたは値を持つことができ、通常のboolを使用しています。ここでnullableブールを使用する必要があります。あなたはこのようにそれを行うことができます。

bool? status = null; 

または

Nullable<bool> status = null; 

はそれが役に立てば幸い!

+0

はい、これらの値は、C#ではなくC#のhtmlページで渡されます。値はsqserverとの接続にのみ呼び出されます。 – zee21

+0

ああ、質問の説明を更新したことに気付かなかった。 – mindOfAi

+0

エラーが発生した場所のコードブロックを表示できますか? – mindOfAi

関連する問題