C#QQ程序中的NullReferenceException

来源:百度知道 编辑:UC知道 时间:2024/07/02 09:13:59
在网上下载了一个 吉林省明日科技有限公司 写的企业QQ系统(源代码)
运行时出现NullReferenceException

相关代码:
/// <summary>
/// 更新用户列表
/// </summary>
private void UpdateUser()//////////////////这句出现异常
{
ClassOptionData OptionData = new ClassOptionData();
SqlDataReader DataReader = OptionData.ExSQLReDr("Select * From tb_CurreneyUser");
LV_SysUser.Items.Clear();
while (DataReader.Read())
{
ListViewItem listItem = new ListViewItem();
listItem.Text = Convert.ToString(DataReader.GetInt32(0));
listItem.SubItems.Add(DataReader.GetString(1));
listItem.SubItems.Add(Convert.ToString(DataReader.GetInt32(2)));
listItem.SubItems.Add(DataReader.GetString(3));
listItem.SubItems.Add(Convert.ToString(DataReader.GetInt32(5)));

这个问题有可能因为,在数据库记录中纯在字段为空值。读取赋值的时候出现错误。
还有就是在更新和存储的过程中因为有空值出现封装的SQL Task 出现错误。

根据你贴出来的图片的首句:Message="未……";我可以初步判断是你在发送或者读取的时候这个值为空。当然了楼上说的数据库中没有数据是错误的,是可能存在空记录。如果是没有记录那么while (DataReader.Read())是不运行的。

一般我解决这个问题的方法是:string类型:在当TextBox有可能出现空值是。赋值语句这样写
Message=string.IsEmpty(TextBox.Text.ToString())?string.Empty:TextBox.Text.ToString();
这样便可以避免这个问题。当然了这个仅适合string类型。数据类型有需要的再提供。
同样道理。当数据库中出在空字段也是同理。
Message=string.IsEmpty(DataReader["filed"].ToString())?string.Empty:DataReader["filed"].ToString();

为了避免重复操作。我一般是先封装成一个属性类。然后直接调用即可。
来至:.net 初学者群,群号:60486014的解答。同时欢迎广大爱好者加盟共同探讨。

这不都一样吗 这有什么好解释的呀

就是一个 绑定ListView控件吗~1

是哪行抛空指针?

应该是数据库里没资料吧 这软件又没空置判断,就抛出异常了

如果数据库有数据的话,写个测试类看看连接是否成功~

未将对象引用设置到对象的实例
出现这种异常一般都是等号前后的值类型不匹配.你这主要是强制类型转换的时候,主要检查后面的类型是否是一个字符串