下拉列表中的空值错误 [英] Null value error in a drop down list

查看:77
本文介绍了下拉列表中的空值错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  protected   void  Page_Load(对象发​​件人,EventArgs e)
{
如果(!this.IsPostBack)
{
this .BindGrid();
}

}



受保护 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添加参数
如果( 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;
// 此处没有为下拉列表分配任何值。

if (ddTeam.SelectedItem.Value == name)teamID = 6 ;

cmd.Parameters.AddWithValue( @ resultId,resultId);
cmd.Parameters.AddWithValue( @ venueId,venueID);
cmd.Parameters.AddWithValue( @ genderId 1 );
// 此处错误团队ID未分配cmd.Parameters.AddWithValue(@ teamId,teamID) ;
cmd.Parameters.AddWithValue( @ formatID 1 );

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

}
}
}



protected void DropDownList1_SelectedIndexChanged( object sender,EventArgs e)
{
尝试
{
con.Open();
query = 从OA_PlayerBat中选择*,其中Team_ID =' + ddTeam.SelectedItem + < span class =code-string>
';
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 (例外情况)
{
Response.Redirect(ex.Message);
}
}
}
}





我尝试了什么:



没有值被设置到下拉列表我已经提到了错误所在的行。请看看你是否可以帮助我排序。谢谢

解决方案

您的绑定存在绑定ddlTeam的问题,首先只选择与ddlTeam绑定所需的列不要使用*选择所有列然后你已经为dllTeam指定了valuemember和text成员,哪个列用于值以及用于显示dllTeam的文本,请尝试类似:



 query =  从OA_PlayerBat中选择Team_ID,Team_Name,其中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; // 请注意
ddTeam.DataTextField = Team_Name; // 请注意
ddTeam.DataBind();





然后在bindgrid()中你可以直接使用SelectedVlaue:



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


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);
            }
        }
    }
}



What I have tried:

no value is being set to a drop-down list i have mentioned the lines where the errors are. kindly see if you can help me out in sorting this. Thanks

解决方案

Your binding has issue where you are binding ddlTeam, first of all select only columns that are needed to bind with ddlTeam do not select all columns using * and then you have specify valuemember and text member for dllTeam that which column to use for value and which for display text of dllTeam, try something like:

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();



and then in bindgrid() you can use SelectedVlaue directly:

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


这篇关于下拉列表中的空值错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆