繁体   English   中英

对象引用未设置为对象C#的实例

[英]object reference not set to an instance of an object C#

我正在尝试在C#.NET中编写具有数据库交互功能的Web应用程序。 我收到一个奇怪的例外,我无法弄清楚它的来源。 我找到了它来自的方法,代码如下:

protected void cmdDelete_Click(object sender, EventArgs e)
{
    using (SqlConnection conn = new SqlConnection(@"Server=myname-PC\SQLEXPRESS;Database=dbNames;Trusted_Connection=True;"))
    {
        try
        {
            conn.Open();
            SqlCommand comm = new SqlCommand("DELETE FROM Names WHERE FirstName=@FirstName AND LastName=@LastName", conn);
            char[] delims = new char[1];
            delims[0] = ' ';

            string[] names = cblNames.SelectedItem.Text.Split(delims);
            string fname = names[0];
            string lname = names[1];
            comm.Parameters.Add(new SqlParameter("@FirstName", fname));
            comm.Parameters.Add(new SqlParameter("@LastName", lname));
            comm.ExecuteNonQuery();
            conn.Close();
            cblNames.ClearSelection();
            LoadTable();
        }
        catch (Exception ex)
        {
            Response.Write("Delete Table: "+ex.Message);
        }
    }
}

任何帮助表示赞赏!

我遇到的问题是我没有在回发中获得价值,因为我在page_load函数中遗漏了一点点代码宁静:

If Not IsPostBack()

这是知识的基本流失。 从这个问题开始,我就一直在.NET中进行开发,并且我意识到用一种新语言犯错误是多么简单。 谢谢大家处理过去的菜鸟。

您将需要查看引发错误的代码行和/或仅调试应用程序。 否则,我只能猜测可能发生的位置:

conn.Open(); //conn could be null (if your connection string is bad it would post back a null connection I believe
cblNames.SelectedItem.Text //cblNames could be null (doubtful), but SelectedItem definitely could
LoadTable(); could be throwing it up also

没有更多的调试信息,这可能是您可能获得的最佳答案。

是说cblNames.SelectedItem为null,还是Split函数只是不返回任何东西?

好吧,它可以是一个,也可以是另一个,只有您可以访问代码,因此请在该行设置一个断点,并在单击断点时检查SelectedItemnull还是Textnull 确切地说,我们可以消除第二个“选项”,因为Split总是返回某些内容,即使它只是一个空数组,也不会返回null

更新资料

根据您的评论,似乎没有设置SelectedItem ,因此您必须跟踪应该设置SelectedItem并验证其是否正确执行。

查看您的代码, cblNames只能抛出异常。 检查stacktrace以获取特定的代码行。 另一方面,不建议将基本异常catch (Exception ex)catch (Exception ex) 始终使用针对特定情况的异常,例如System.Data.SqlClient.SqlExceptionSystem.InvalidOperationException 有关更多详细信息,请检查MSDN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM