c# 未将对象引用设置到对象的实例

saiwainanhai 2011-06-21 09:26:25
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace News
{
public partial class Add : Form
{
public Add()
{
InitializeComponent();
}

private void save_Click(object sender, EventArgs e)
{
//获取要插入数据库的每个字段的值
string Name = textName.Text; //姓名
string Sex = textSex.Text; //性别

//构建插入的SQL语句
string sql = string.Format("insert into news (Name,Sex) values('{0}','{1}')",Name,textSex);

if (textName.Text.Trim()=="" || textSex.Text.Trim()=="")
{
MessageBox.Show("请您填写完整的信息!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else
{
try
{
//创建Command对象
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open(); //代开数据库连接
int result = command.ExecuteNonQuery(); //执行命令

//根据操作结果给出提示信息
if (result != 1)
{
MessageBox.Show("添加失败!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
MessageBox.Show("添加成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
MessageBox.Show("操作数据库出错!","操作提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
Console.WriteLine(ex.Message);
}
finally
{
DBHelper.connection.Close(); 未将对象引用设置到对象的实例
}
this.Close();
}
}

private void exit_Click(object sender, EventArgs e)
{
this.Close();
}
}
}



红字体报错
...全文
149 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
a474841314 2011-06-21
  • 打赏
  • 举报
回复
放在Try里
打酱油 2011-06-21
  • 打赏
  • 举报
回复
DBHelper.connection没有赋值,重新new一个connection
zlntang 2011-06-21
  • 打赏
  • 举报
回复
未将对象引用设置到对象的实例 这个提示已经很清楚了,根一下,就能找到具体的错误
stonespace 2011-06-21
  • 打赏
  • 举报
回复
DBHelper.connection没有赋值,
迷茫的主宰 2011-06-21
  • 打赏
  • 举报
回复
一步一步的加断点调,看到底哪个是null的。
cjh200102 2011-06-21
  • 打赏
  • 举报
回复
这种错误只能一步步跟踪调试
saiwainanhai 2011-06-21
  • 打赏
  • 举报
回复
int result = command.ExecuteNonQuery(); //执行命令


这段没有执行
老毕 2011-06-21
  • 打赏
  • 举报
回复
string sql = string.Format("insert into news (Name,Sex) values('{0}','{1}')",Name,textSex);

这里的第2个值怎么是textSex了。textSex是个TextBox吧,是不是应该改成Sex,因为看见你之前有个转换了。
string Name = textName.Text; //姓名
string Sex = textSex.Text; //性别
sunny906 2011-06-21
  • 打赏
  • 举报
回复
1.DBHelper.connection赋过值了吗?
2.要先打开连接

try
{
DBHelper.connection.Open(); //打开数据库连接
//创建Command对象
SqlCommand command = new SqlCommand(sql, DBHelper.connection);

3.

finally
{
if(DBHelper.connection!=null)
{
if(DBHelper.connection.State==ConnectionState.Open)
{
DBHelper.connection.Close();
}
}
}
xuexiaodong2009 2011-06-21
  • 打赏
  • 举报
回复
设断点调试
风骑士之怒 2011-06-21
  • 打赏
  • 举报
回复
connection 声明但未实例化!!!
bdmh 2011-06-21
  • 打赏
  • 举报
回复
DBHelper.connection.Close(); 设断点,看看哪个为null,不可访问

110,547

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧