2016-05-05 6 views
1

Ich habe eine Dropdown-Liste, in der Daten dynamisch binden. Lass mich es erforschen. Ich habe fünf Dropdown-Liste, was ich tun muss Nullwert übergeben, wenn Index 0 ausgewählt ist. Ich habe so versucht, aber leere Zeichenfolge zurückgegeben.Wie übergeben Null-Wert von asp.net C# zu SQL-Abfrage?

drp_sub_stream.Items.Insert(0, new ListItem("Select a Sub Stream", null)); 
drp_sub_stream.Items.Insert(0, new ListItem("Select a Sub Stream", DBNull.Value.ToString())); 

Dann habe ich versucht, wie diese

drp_sub_stream.Items.Insert(0, new ListItem("Select a Sub Stream", "NULL")); 

aber es gibt als String null. Ich muss diesen Wert beim Klicken auf die Schaltfläche übergeben, von wo aus ich die Daten suche. Button-Click-Code:

public void _SearchCollege(string _CountryName,string _University, string _LevelName, string _Interest,string _Substream) 
    { 

     using (SqlConnection con = new SqlConnection(CS)) 
     { 

      con.Open(); 

      //string s = "select * from edu_college_desc where (country= @country and [email protected] and leveln= @level and interest= @interest and [email protected]) or ([email protected] or [email protected] or [email protected] or [email protected] or [email protected]) "; 

      string s= "select * from edu_college_desc where country = ISNULL(@country ,country) and university = ISNULL(@university ,university) and leveln  = ISNULL(@level ,leveln) and interest = ISNULL(@interest ,interest) and substream = ISNULL(@substream,substream)"; 
      SqlDataAdapter da = new SqlDataAdapter(s, con); 
      da.SelectCommand.Parameters.AddWithValue("@country", _CountryName); 
      da.SelectCommand.Parameters.AddWithValue("@university", _University); 
      da.SelectCommand.Parameters.AddWithValue("@level",_LevelName); 
      da.SelectCommand.Parameters.AddWithValue("@interest", _Interest); 
      da.SelectCommand.Parameters.AddWithValue("@substream", _Substream); 
      DataTable dt = new DataTable(); 
      da.Fill(dt); 
      if (dt.Rows.Count > 0) 
      { 
       HttpContext.Current.Session["edusearch"] = dt; 
       HttpContext.Current.Response.Redirect("edusearch.aspx"); 

      } 
      else 
      { 
       HttpContext.Current.Session["edusearch"] = null; 
       HttpContext.Current.Response.Redirect("edusearch.aspx"); 
      } 
     } 
    } 

Need Lösung.

+0

Was machst du wirklich tun? Tring, um den Nullwert an Sql-Anweisung zu übergeben, oder in Parameter? – ali

+0

Sie können einfach "DBNull.Value" übergeben. z.B. - 'da.SelectCommand.Parameters.AddWithValue (" @ subtream ", DBNull.Value);' wo Sie null als Parameter übergeben müssen. – Yogi

Antwort

0
drp_sub_stream.Items.Insert(0, new ListItem("Select a Sub Stream", "0")); 

oder

drp_sub_stream.Items.Insert(0, new ListItem("Select a Sub Stream", String.Empty)); 

Dann können Sie eine einfache verwenden, wenn SelectedValue Null oder string.Empty gleich und entscheiden, ob anwenden und Filter (Verkettung in SQL-Abfrage)

string s= "select * from edu_college_desc where country = ISNULL(@country ,country) and university = ISNULL(@university ,university) and leveln  = ISNULL(@level ,leveln) and interest = ISNULL(@interest ,interest)"; 
if(!String.IsNullOrEmpty(_SubStream)) 
    s+= " and substream = ISNULL(@substream,substream)"; 
... 


if(!String.IsNullOrEmpty(_Substream)) 
    da.SelectCommand.Parameters.AddWithValue("@substream", _Substream); 

In dieser So können Sie auch einen erforderlichen Validator verwenden, um zu prüfen, ob Sie einen Wert ausgewählt haben (in Null-Fall müssen Sie InitialValue="0" hinzufügen)

+0

Ich habe das bereits versucht, aber es gibt leere Zeichenfolge – shashank

+0

Es ist korrekt. Dann editieren Sie Ihre Methode, um 'und substream = ISNULL (@ substream, substream)' und 'da.SelectCommand.Parameters.AddWithValue (" @ substream ", _Substream) hinzuzufügen;' nur 'if (! String.IsNullOrEmpty (substream)) ' – Emanuele

+0

können Sie es ausarbeiten? – shashank

Verwandte Themen