代码之家  ›  专栏  ›  技术社区  ›  Yongwei Xing

值不能为空。参数名称:在ASP.NET中进行数据绑定时的键

  •  0
  • Yongwei Xing  · 技术社区  · 14 年前

    我正在尝试将数据绑定到来自sql server的列表框,然后得到错误“值不能为空。参数名称:key”

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

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

    1 回复  |  直到 14 年前
        1
  •  0
  •   Ashish Gupta Shiva    14 年前

    理想情况下,您应该返回类似于“Id”和国家“Name”的列。Id是下拉列表的值,Name是用户在下拉列表中看到的文本。

    确保为上面的示例分别为dropdownlist的DataTextField和DataValueField分配了“Id”和“Name”列。

    编辑 :-不过很奇怪,如果这仍然不起作用,您可以尝试在数据绑定之前将下拉列表的SelectedValue设置为null吗?

    尝试将数据绑定代码从If(!IsPostBack)。这又奇怪了。