shifa Ali Ответов: 1

Ошибка нулевого значения в выпадающем списке


protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                this.BindGrid();
            }

        }



        protected void btnSubmitQuery_Click(object sender, EventArgs e)
        {
            BindGrid();

        }


        private void BindGrid()
        {

            { con = new        SqlConnection(ConfigurationManager.ConnectionStrings["CrciketInsighterConnectionString"].ConnectionString);
                SqlCommand cmd = new SqlCommand();
                {
                    cmd.CommandText = "getBattingPlayersOA";
                    cmd.CommandType = CommandType.StoredProcedure;
                    int formatId = 0, resultId = 0, venueID = 0, teamID = 0;

                    #region Add Parameters
                    if (rdODI.Checked)
                        formatId = 2;
                    else if (rdT20.Checked)
                        formatId = 3;
                    else if (rdTest.Checked)
                        formatId = 1;

                    if (WonCheckBox.Checked) resultId = 1;
                    else if (LostCheckBox.Checked) resultId = 2;
                    else if (TiedCheckBox.Checked) resultId = 3;
                    else resultId = 4;

                    if (rdhome.Checked) venueID = 1;
                    else if (rdaway.Checked) venueID = 2;
                    else if (rdAll.Checked) venueID = 4;
                    else if (rdneutral.Checked) venueID = 3;
                    string name = "Pakistan";
                   // here no value is being assigned to a dropdown list .

                    if (ddTeam.SelectedItem.Value == name) teamID=6;
                   
                    cmd.Parameters.AddWithValue("@resultId", resultId);
                    cmd.Parameters.AddWithValue("@venueId", venueID);
                    cmd.Parameters.AddWithValue("@genderId", 1);
                  //Error here team ID is not assigned              cmd.Parameters.AddWithValue("@teamId",teamID);
                    cmd.Parameters.AddWithValue("@formatID", 1);

                    #endregion
                    using (SqlDataAdapter sda = new SqlDataAdapter())
                    {
                        cmd.Connection = con;
                        sda.SelectCommand = cmd;
                        using (DataSet ds = new DataSet())
                        {
                            sda.Fill(ds);
                            grdResult.DataSource = ds;
                            grdResult.DataBind();
                        }
                    }

                }
            }
        }

        

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                con.Open();
                query = "select * from OA_PlayerBat where Team_ID ='" + ddTeam.SelectedItem + "'";
                SqlCommand cmd = new SqlCommand(query, con);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds);
                ddTeam.DataSource = ds;
                ddTeam.DataBind();
                con.Close();
            }
            catch (Exception ex)
            {
                Response.Redirect(ex.Message);
            }
        }
    }
}


Что я уже пробовал:

ни одно значение не устанавливается в раскрывающемся списке, я уже упоминал строки, где есть ошибки. пожалуйста, посмотрите, можете ли вы помочь мне разобраться в этом. Спасибо

1 Ответов

Рейтинг:
7

Ehsan Sajjad

Привязки есть проблема, где Вы являются обязательными ddlTeam, в первую очередь выберите только те столбцы, которые необходимы для связывания с ddlTeam не Выберите все столбцы, используя * и тут вам указать valuemember и текст-членов для dllTeam что какой столбец использовать для вэлью и что для отображения текста dllTeam, как нибудь попробую:

query = "select Team_ID,Team_Name from OA_PlayerBat where Team_ID ='" + ddTeam.SelectedValue+ "'";
                SqlCommand cmd = new SqlCommand(query, con);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds);
                ddTeam.DataSource = ds;
                ddTeam.DataValueField = "Team_ID";  // note this
                ddTeam.DataTextField = "Team_Name";    // note this
                ddTeam.DataBind();


а затем в bindgrid() вы можете использовать SelectedVlaue напрямую:

teamID = Convert.ToInt32(ddTeam.SelectedItem.Value);
cmd.Parameters.AddWithValue("@teamId",teamID);