未将对象引用设置到对象的实例 vs2005提示:未处理NULLReferenceException未将对象引用设置到对象的实例提示代码(c#):cn.Open();请问高手问题在哪里? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充:部分代码如下: public BookItem() { strConn = ConfigurationManager.ConnectionStrings["LibraryConnectionString"].ConnectionString; cn = new SqlConnection(strConn); } public BookItem(string bookID, string titleID) { this.bookID = bookID; this.state = "馆内"; this.titleID = titleID; } //根据图书条码查找 public int FindByBookID(string bookID) { try { cn.Open();//提示错误的地方 SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandText = "select * from bookItem where bookID = '" + bookID + "'"; SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { this.bookID = bookID; this.titleID = dr[1].ToString(); this.state = dr[2].ToString(); dr.Close(); cn.Close(); return 1; } else { dr.Close(); cn.Close(); return 0; } } catch (SqlException ex) { //System.Diagnostics.Debug.Print(ex.Message); cn.Close(); return 0; } } 1.你看一下ConfigurationManager.ConnectionStrings["LibraryConnectionString"].ConnectionString,配置节中的连接字符串是否能正确连接上你想要连接的数据库。2.看看cn这个对象定义的位置,应该定义在这个类里面。3.单步调试一下你的程序,在你觉得有问题的地方设置断点。 在配置文件中 ,检查 LibraryConnectionString 的字符串。 估计是你的Connection对象,没有实例化吧。 在此处断点strConn = ConfigurationManager.ConnectionStrings["LibraryConnectionString"].ConnectionString;看看你这里的strConn是不是空的(把鼠标移至strConn上就会显示他的值) 断点打在这句上 strConn = ConfigurationManager.ConnectionStrings["LibraryConnectionString"].ConnectionString; 程序的原因,你可以检查一下是否是空指针,(没有实例化一个对象就开始使用了)也有可能是VS2005开发环境本身的原因,像sql server2005/VS2005之类的软件本身也有一些没有测试到的bug,或者配置文件错误引起的问题,也会有这种错误,我都碰到过好多次了 C#线程教程 如何实现同步 TextBox控件 treeview 节点做的菜单,选中节点时如何增加下划线,节点的字体变颜色。 请问各位老师,如何向ToolbarWindow32中的按钮发送消息 简单代码,错误原因不明! vs2005自带的RDLC问题 开发“智能设备”程序 Tooltip使用问题 求大神解决“SaveSetInfo”方法没有任何重载采用“4”个参数 求助,关于try/catch的问题。。。。。 winform中datagridview中点击单元格调用文档的实现方法
部分代码如下:
public BookItem()
{
strConn = ConfigurationManager.ConnectionStrings["LibraryConnectionString"].ConnectionString;
cn = new SqlConnection(strConn);
}
public BookItem(string bookID, string titleID)
{
this.bookID = bookID;
this.state = "馆内";
this.titleID = titleID;
} //根据图书条码查找
public int FindByBookID(string bookID)
{
try
{
cn.Open();//提示错误的地方
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "select * from bookItem where bookID = '" + bookID + "'";
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
this.bookID = bookID;
this.titleID = dr[1].ToString();
this.state = dr[2].ToString();
dr.Close();
cn.Close();
return 1;
}
else
{
dr.Close();
cn.Close();
return 0;
}
}
catch (SqlException ex)
{
//System.Diagnostics.Debug.Print(ex.Message);
cn.Close();
return 0;
}
}
2.看看cn这个对象定义的位置,应该定义在这个类里面。
3.单步调试一下你的程序,在你觉得有问题的地方设置断点。
看看你这里的strConn是不是空的(把鼠标移至strConn上就会显示他的值)
断点打在这句上 strConn = ConfigurationManager.ConnectionStrings["LibraryConnectionString"].ConnectionString;
也有可能是VS2005开发环境本身的原因,像sql server2005/VS2005之类的软件本身也有一些没有测试到的bug,或者配置文件错误引起的问题,也会有这种错误,我都碰到过好多次了