为什么提交数据时老是提示:“未将对象引用设置到对象的实例”

lgqTiger 2004-08-01 11:44:13
我在WEB页中执行这个方法时就出错。
我的代码是这样的,请各位帮我看看:
======================================================
public void AddOrder(OrderClass newOrder)
{
//提交数据;
//Conn.Open();
Adapter.SelectCommand.CommandText = "Select * From Order";
Adapter.SelectCommand.Connection =Conn;
SqlCommandBuilder cb = new SqlCommandBuilder(Adapter);
Conn.Open();
ds = this.GetSelectData("Select * From Order");
DataRow dr = ds.Tables["Order"].NewRow();
dr["Order"] = newOrder.Order;
dr["Category"] = newOrder.Categoty;
dr["Date"] = newOrder.Date;
dr["Term"] = newOrder.Term;
ds.Tables["Order"].Rows.Add(dr);
Adapter.Update(ds,"Order");
}
...全文
616 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgqTiger 2004-08-03
  • 打赏
  • 举报
回复
谢谢楼上的师傅,你的回信小弟受到了。
但是我想将GetSelectData方法该的通用一点。
后来我将他该为这样:但是没有正常返回指定数据表名字的
数据集,麻烦你好人作到底帮小弟看看为什么回不行吗?

public DataSet GetSelectData(string SelectText,string TableName)
{
//我添加了这个TableName变量后就不行不知道为什么?,
Adapter.SelectCommand.Connection = Conn;
Adapter.SelectCommand.CommandText = SelectText;
try
{ DataSet ds =new DataSet();
Adapter.Fill(ds,TableName);
return ds;//返回数据表;
}
catch //保证即使数据库读取失败都能返回DS数据集;
{
return null;
}
}

调用时,我是这样调用的:
=======================
DataSet ds = new DataSet();
ds = GetSelectData("Select * From Order","Order");
//接下来如果要访问这个ds变量时就会提示“未将对象引用设置到对象实例”
marvelstack 2004-08-03
  • 打赏
  • 举报
回复
应该是数据访问的原因,把
catch //保证即使数据库读取失败都能返回DS数据集;
{
return null;
}
=========================写成
catch(Exception ex)
{
ex.ToString();//在这里设置断点,看看错误提示是什么,从你的说明来看是有异常了,
return null;
}
=======================
DataSet ds = new DataSet();
ds = GetSelectData("Select * From Order","Order");
修改成
//不需要再重新实例化ds 了。
DataSet ds = GetSelectData("Select * From Order","Order");
if(ds == null)
那就是获取出错。
wingnal 2004-08-02
  • 打赏
  • 举报
回复
未将对象引用设置到对象的实例
肯定是你的哪一个对象是空的,特别注意一下string型数据
自己慢慢找找
liduke 2004-08-02
  • 打赏
  • 举报
回复
跟踪一下吧,看看是那个值没有初始化
DataClass应该是这个
liduke 2004-08-02
  • 打赏
  • 举报
回复
跟踪一下吧,看看是那个值没有初始化
DataClass应该是这个
lgqTiger 2004-08-02
  • 打赏
  • 举报
回复
我就是要将自定义的类OrderClass来存储数据然后作为参数
传递到DataClass的AddOrder(OrderClass newOrder);的方法中。
这样是不是有问题?
是不是WebForm中不可以将数据这样传递?

按照楼上的师傅所说的意思是说我的

OrderClass newOrder = new OrderClass();
newOrder.Order = TextBox1.Text;
newOrder.Categoty = DropDownList1.SelectedValue.ToString();
newOrder.Date = Convert.ToDateTime(TextBox2.Text);
newOrder.Term = Convert.ToDateTime(TextBox3.Text);
DataClass dc = new DataClass();
dc.AddOrder(newOrder);
实际上AddOrder方法所接受到的参数是null[空值]????
jieguo 2004-08-02
  • 打赏
  • 举报
回复
巨简单
:
加一个判断语句:
if (ds.tables["Order"]!=null)
{
do...
}
appleblossom 2004-08-02
  • 打赏
  • 举报
回复
看了你的代码以后,我的感觉是这样的,
你是这样定义的:
DataClass dc = new DataClass();
dc.AddOrder(newOrder);
而实际上的方法定义是这样的:
public void AddOrder(OrderClass newOrder);这只是个提交数据到数据库的壳(也就是方法)
具体的连接web页面实现本质数据传输还是由最上面两句完成的。
那么关键点集中在DataClass这个类,这个类定义的dc到底是个什么样的类对象,它是否真的能存数据,从而完成AddOrder(),这是你要着重考虑的问题。如果dc只是个实例化方法的话,显然会出错,因为没有数据的承载,那么谈何完成提交到数据库的AddOrder()这个方法呢?

朝夕闻道 2004-08-02
  • 打赏
  • 举报
回复
系统提示的是:
Logistics.DataClass.AddOrder(OrderClass newOrder) in 58行。
但是我不知道等于那一行,他的代码编辑器中不像Delphi8那样带标识 啊。

状态栏右下显示的是光标所在的行列,也可以在工具-->选项里面设置显示行
阿笨 2004-08-02
  • 打赏
  • 举报
回复
sql 语句出错了
lgqTiger 2004-08-02
  • 打赏
  • 举报
回复
好的,稍后 马上回家把代码都给贴上。
麻烦各位了。 拜托 拜托 拜托!!!
心雨楼 2004-08-02
  • 打赏
  • 举报
回复
show all you codes !
心雨楼 2004-08-02
  • 打赏
  • 举报
回复
可以代标识的!设一下就行了!

这断点然后单步运行就知道哪有错了!
lgqTiger 2004-08-02
  • 打赏
  • 举报
回复
是啊,我的ds变量是在构造函数中初始化的啊。 麻烦你了。
我以前用C#写App应用程序时都没问题,珍奇怪。
lgqTiger 2004-08-02
  • 打赏
  • 举报
回复
系统提示的是:
Logistics.DataClass.AddOrder(OrderClass newOrder) in 58行。
但是我不知道等于那一行,他的代码编辑器中不像Delphi8那样带标识 啊。
marvelstack 2004-08-02
  • 打赏
  • 举报
回复
看了楼主的三个代码,ds是不是在构造函数中实例化的。如果不是那上面的代码中没有看到ds分配内存,楼主可以检查一下。
另外这种错误就像楼上的所说的单步调试一下,因为你是空引用问题比较容易找,有问题发短信给我。
Jackile 2004-08-02
  • 打赏
  • 举报
回复
单步调试,给出出错行。。。。。。
fgc5201314 2004-08-02
  • 打赏
  • 举报
回复
Tiger,你执行到哪一步的时候出错了?
bitsbird 2004-08-02
  • 打赏
  • 举报
回复
为什么不注释出哪行出错呢
lgqTiger 2004-08-02
  • 打赏
  • 举报
回复
Conn也在里面声明了public类型的变量;
加载更多回复(14)

110,500

社区成员

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

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

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