Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 值不能为null。参数名称:ASP.NET中数据绑定时的键_C#_Asp.net_Sql Server - Fatal编程技术网

C# 值不能为null。参数名称:ASP.NET中数据绑定时的键

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吗 尝试将数据绑

我正在尝试从sql server将数据绑定到列表框,然后出现错误“值不能为null。参数名称:key”


以前有人遇到过这个问题吗?

理想情况下,您应该返回类似于“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();