C# 值不能为null。参数名称:ASP.NET中数据绑定时的键
我正在尝试从sql server将数据绑定到列表框,然后出现错误“值不能为null。参数名称:key”C# 值不能为null。参数名称:ASP.NET中数据绑定时的键,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我正在尝试从sql server将数据绑定到列表框,然后出现错误“值不能为null。参数名称:key” 以前有人遇到过这个问题吗?理想情况下,您应该返回类似于“Id”和国家“名称”的列。Id是下拉列表的值,名称是用户在下拉列表中看到的文本 确保为上述示例分别为dropdownlist的DataTextField和DataValueField分配了“Id”和“Name”列 编辑:-很奇怪,如果这仍然不起作用,您能在数据绑定之前尝试将下拉列表的SelectedValue设置为null吗 尝试将数据绑
以前有人遇到过这个问题吗?理想情况下,您应该返回类似于“Id”和国家“名称”的列。Id是下拉列表的值,名称是用户在下拉列表中看到的文本 确保为上述示例分别为dropdownlist的DataTextField和DataValueField分配了“Id”和“Name”列 编辑:-很奇怪,如果这仍然不起作用,您能在数据绑定之前尝试将下拉列表的SelectedValue设置为null吗
尝试将数据绑定代码移出If(!IsPostBack)的另一个选项。这又有点奇怪。始终将SqlConnection、SqlCommand和SqlDataReader使用block作为最佳实践。我已经分配了它,我没有粘贴关于dropdownYes的代码。我将dropdownlist的DataTextField和DataValueField分别分配给上面的“Id”和“Name”列。哪一行会引发错误?还有一个问题,您是否在查询中返回“Id”,并将“Id”分配给dropdownlist的“DataKeyField”属性?@Ashish Gupta,我已经更新了在ddlCountry.DataBind()上抛出错误的帖子;已从中读取数据sql@Ashish古普塔,我找到了原因,原因是代码的顺序,谢谢你的帮助。
ddlCountry = new Obout.ComboBox.ComboBox();
ddlCountry.Width = 200;
ddlCountry.Height = 200;
ddlCountry.DataTextField = "Country";
ddlCountry.DataValueField = "Country";
sqlCommand = "SELECT [Country] FROM [tbl_LookupCountry] where [Country] IS NOT NULL";
SqlConnection sqlConCountry = new SqlConnection(connectString);
SqlCommand sqlCommCountry = new SqlCommand();
sqlCommCountry.Connection = sqlConCountry;
sqlCommCountry.CommandType = System.Data.CommandType.Text;
sqlCommCountry.CommandText = sqlCommand;
sqlCommCountry.CommandTimeout = 300;
sqlConCountry.Open();
reader = sqlCommCountry.ExecuteReader();
ddlCountry.DataSource = reader;
ddlCountry.DataBind();
sqlConCountry.Close();