c# - 对象引用未设置为对象实例”

标签 c# object-reference

我正在从数据库中的列表框中插入值,并在单击按钮时检索文本。但我收到以下错误

Object reference not set to instance of object

因此“selecteditem.text”不会在所选项目上获得任何值...

String selectemail = "select email_id from [property].[dbo].[user_membership]";
SqlCommand cmd = new SqlCommand(selectemail, con);
cmd.Connection.Open();

ListBox1.DataSource = cmd.ExecuteReader();
ListBox1.DataTextField = "Email_ID"; 
ListBox1.DataBind();  

//on button click//       
protected void Button1_Click1(object sender, EventArgs e)
{
   ListItem item = new ListItem();
   item.Text = ListBox1.SelectedItem.Text;(error comes here)
   ListBox2.Items.Add(item.Text);
   ListBox1.Items.Remove(item.Text);
   ...
}

最佳答案

这将为您停止错误:

//on button click//       
protected void Button1_Click1(object sender, EventArgs e)
{
        if (ListBox1.SelectedItem == null) return;

        ListItem item = new ListItem();
        item.Text = ListBox1.SelectedItem.Text;(error comes here)
        ListBox2.Items.Add(item.Text);
        ListBox1.Items.Remove(item.Text);
}

看起来这只是用户没有在您的 ListBox1 中选择任何内容的问题。

编辑


我将一个测试应用放在一起进行检查,这对我来说效果很好:

    var dt = New DataTable()
    dt.Columns.Add("email_id");

    dt.Rows.Add("first");
    dt.Rows.Add("second");
    dt.Rows.Add("thrid");
    dt.Rows.Add("fourth");

    var lst = New System.Web.UI.WebControls.ListBox;

    lst.DataSource = dt;
    lst.DataTextField = "Email_ID";
    lst.DataBind();

    //lst.SelectedItem is null here
    lst.SelectedIndex = 1;

    //lst.SelectedItem is NOT null here

关于c# - 对象引用未设置为对象实例”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5377211/

相关文章:

c# - 用于检查日月年日期的 C# 函数

C# 销毁对象及其所有引用

javascript - Angular ui Bootstrap typeahead - 添加类,当附加到正文时

c# - 动态对象?以下代码如何工作?

c# - 预期在 mock 上调用一次,但为 0 次 With Moq

c# - 我的 ArrayList 去哪儿了?地铁应用

java - 在字节数组中存储对象引用

java - EditText 值未反射(reflect)出来,它显示以前的值,但是当您打印 EditText 的 getText 时,它显示正确的值

Python 多处理对象引用

c# - 哪个NoSQL数据库可以保护数据?