当我运行我的代码时,它发送的错误是对象引用未设置为下拉列表4中对象的实例。
下拉选择错误
对象引用未设置为对象的实例。
当我从下拉列表中选择项目时
事先感谢亲切帮助PLZ
这是我的代码behnd
protected void LoadOptions4()
{
DropDownList4.Items.Clear();
// DropDownList4 dr = new DropDownList4();
DataTable CardCode = new DataTable();
// string name2;
// string id, name, newName;
SqlConnection connection = new SqlConnection("Data Source=1.2.3.4;Initial Catalog=TestData;Persist Security Info=True;User ID=abcd;Password=abcd12345");
using (connection)
{
// string selected4 = DropDownList3.SelectedItem.Value;
//SqlCommand theCommand = new SqlCommand("SELECT T1.CardCode , T1.CardName, T2.OpprId, T1.CntctPrsn,T2.CprCode,T3.CntctCode,T3.Name FROM OCRD T1 left join OOPR T2 on T1.CardCode=T2.CardCode left join OCPR T3 on T2.CprCode=T3.CntctCode where T1.CardCode=@CardCode ", connection);
SqlCommand theCommand = new SqlCommand("select SlpCode,SlpName from OSLP where SlpCode=@SlpCode and SlpCode<>-1 ", connection);
// SqlDataAdapter adapter = new SqlDataAdapter("SELECT T1.CardCode , T1.CardName, T2.OpprId,T1.CntctPrsn, T2.CprCode,T2.MaxSumLoc FROM OCRD T1 left join OOPR T2 on T1.CardCode=T2.CardCode where T1.CardCode=@selected", connection);
// SqlDataAdapter adapter = new SqlDataAdapter("SELECT T1.CardCode , T1.CardName, T2.OpprId,T1.CntctPrsn, T2.CprCode,T2.MaxSumLoc FROM OCRD T1 left join OOPR T2 on T1.CardCode=T2.CardCode where T1.CardCode=@selected", connection);
string selected5;
selected5 = DropDownList4.SelectedItem.Value;
theCommand.Parameters.AddWithValue("@SlpCode", selected5);
SqlDataAdapter adapter = new SqlDataAdapter(theCommand);
//DataSet ds = new DataSet();
adapter.Fill(CardCode);
//name2 = id;
if (CardCode.Rows.Count > 0)
{
for (int i = 0; i < CardCode.Rows.Count; i++)
{
string name3 = CardCode.Rows[i]["SlpName"].ToString();
string slpCode = CardCode.Rows[i]["SlpCode"].ToString();
// string newName2 = contcode + " ---- " + name2;
DropDownList3.Items.Add(new ListItem(name3, slpCode));
} }}
}
答案 0 :(得分:4)
根据上面的代码,您正在从dropdownlist4清除项目,如下所示
DropDownList4.Items.Clear();
然后在几行代码后,获取下拉列表的选定值
selected5 = DropDownList4.SelectedItem.Value;
以上一行导致了这个问题。没有要选择的项目,但您选择了一个项目。
请删除Items.Clear()
并检查一次。
答案 1 :(得分:0)
DropDownList4.Items.Clear(); remove this line from the top ,
就像在第一行中清除DropDownList4中的数据而你想要在
中调用它selected5 = DropDownList4.SelectedItem.Value;
所以尝试使用函数加载时的数据源DropDownList4,
答案 2 :(得分:0)
此处函数名为
LoadOptions4()
和DropDownList3
正在填充。这毫无意义。根据你的片段 给定,你填充DropDownList3
,所以你必须清除DropDownList3
代替DropDownList4
。
所以你的方法签名将是这样的:
protected void LoadOptions3()
{
DropDownList3.Items.Clear();
string selected5;
selected5 = DropDownList4.SelectedItem.Value;
//perform db operations
//loop through values
DropDownList3.Items.Add(new ListItem(name3, slpCode));
}