Pominiecie pustego pola jako zapytania z dropdownlist

0

Cześć wszystkim
Na liście DropDownList tworzę dodatkową pustą pozycję dzięki DropDownList4.Items.Add(new ListItem("", "")). Po wybraniu innej pozycji z DropDownList (i pobraniu selecta z access) poszczególne rekordy z bazy danych są wczytywane do TextBoxów. Jednak gdy wybiorę ponownie z DropDownList pustą pozycję aplikacja stara się ją znaleźć w bazie danych. Czy można pominąć próbę pobrania pustego rekordu (którego nie ma fizycznie w bazie danych) przy DropDownList1_SelectedIndexChanged, gdyż jego istnienie wynika tylko z DropDownList4.Items.Add(new ListItem("", ""))?


                if (!Page.IsPostBack)
                {
                    DropDownList4.Items.Add(new ListItem("", ""));
                    DropDownList4.AppendDataBoundItems = true;
                    String strConnString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Projekty\projekty.accdb";
                    String strQuery = "select * from projects";
                    OleDbConnection con = new OleDbConnection(strConnString); ;
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = strQuery;
                    cmd.Connection = con;
                    try
                    {
                        
                        con.Open();
                        DropDownList4.DataSource = cmd.ExecuteReader();
                        DropDownList4.DataTextField = "Nazwa_projektu";
                        DropDownList4.DataValueField = "Identyfikator";
                        DropDownList4.DataBind();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {
                        con.Close();
                        con.Dispose();
                    }

        protected void DropDownList4_SelectedIndexChanged(object sender, EventArgs e)
        {
            String strConnString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Projekty\projekty.accdb";
            string strQuery = "select * from projects where" + " Identyfikator = @Identyfikator";
            OleDbConnection con = new OleDbConnection(strConnString);
            OleDbCommand cmd = new OleDbCommand();
            cmd.Parameters.AddWithValue("@Identyfikator", DropDownList4.SelectedItem.Value);
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = strQuery;
            cmd.Connection = con;
            OleDbDataReader myreader;
            try
            {
                con.Open();
                    myreader = cmd.ExecuteReader();
                    myreader.Read();
                    TextBox12.Text = myreader["Nazwa_projektu"].ToString();
                    TextBox2.Text = myreader["Wlasciciel"].ToString();
 
                    myreader.Close();
            }
            finally
            {
                con.Close();
            }
        }


0

Najprościej objąć całą zawartość DropDownList4_SelectedIndexChanged w

if (!string.IsNullOrEmpty(DropDownList4.SelectedValue))
{

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1