初学者问题,关于ADO.NET数据库的RELATION

aojunpeng313001 2004-08-02 11:17:07
using System;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication4
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
SqlConnection thisConnection = new SqlConnection( @"Data Source =(local);Integrated Security=SSPI;" + "Initial Catalog = Test" );
thisConnection.Open();

SqlDataAdapter thisAdapter = new SqlDataAdapter( "select * from TestTable", thisConnection );
SqlCommandBuilder thisCommandBuilder = new SqlCommandBuilder( thisAdapter );
DataSet thisDataSet = new DataSet();

SqlDataAdapter custAdapter = new SqlDataAdapter( "select * from TestTable", thisConnection );

SqlDataAdapter oderAdapter = new SqlDataAdapter( "select * from TestTable2", thisConnection );

custAdapter.Fill( thisDataSet, "TestTalbe" );
oderAdapter.Fill( thisDataSet, "TestTalbe2" );

DataRelation custOrderRel = thisDataSet.Relations.Add( "CustOrders", thisDataSet.Tables["TestTable"].Columns["UserID"], thisDataSet.Tables["TestTable2"].Columns["UserID"] );

foreach( DataRow custRow in thisDataSet.Tables["TestTable"].Rows )
{
Console.WriteLine( "UserID:" + custRow["UserID"] + "\tUserName" + custRow["UserName"] );
foreach( DataRow orderRow in custRow.GetChildRows( custOrderRel ) )
{
Console.WriteLine( "UserID" + orderRow["UserID:"] + "Telephoe:" + orderRow["Telephone"] );
}
}

thisConnection.Close();
//
}
}
}


这个程序中的DataRelation custOrderRel = thisDataSet.Relations.Add( "CustOrders", thisDataSet.Tables["TestTable"].Columns["UserID"], thisDataSet.Tables["TestTable2"].Columns["UserID"] );

一句总是报

未处理的“System.NullReferenceException”类型的异常出现在 ConsoleApplication4.exe 中。

的错误 ,麻烦大侠们指点。先谢谢了
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
webmaxer 2004-08-03
  • 打赏
  • 举报
回复
老兄,请多注意代码,别再范低级错误了。
custAdapter.Fill( thisDataSet, "TestTalbe" );
应为TestTable
oderAdapter.Fill( thisDataSet, "TestTalbe2" );
应为TestTable2
象空指针引用错误多是由于引用的对象不存在导致的。
yellowzxl 2004-08-03
  • 打赏
  • 举报
回复
帮你顶
aojunpeng313001 2004-08-03
  • 打赏
  • 举报
回复
问题未解决,自己再顶一下
aojunpeng313001 2004-08-02
  • 打赏
  • 举报
回复
自己顶一下
aojunpeng313001 2004-08-02
  • 打赏
  • 举报
回复
出错信息是:

未处理的“System.NullReferenceException”类型的异常出现在 ConsoleApplication4.exe 中。

其他信息: 未将对象引用设置到对象的实例。
cmsystem 2004-08-02
  • 打赏
  • 举报
回复
未处理的“System.NullReferenceException”类型的异常是典型的数据没有进DataSet的错误。我以前也碰到过。
你试试加个try块,获得一下异常信息看看。
try
{
DataRelation custOrderRel = thisDataSet.Relations.Add( "CustOrders", thisDataSet.Tables["TestTable"].Columns["UserID"], thisDataSet.Tables["TestTable2"].Columns["UserID"] );
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}

看看有什么结果,是什么表没有值。因为不知道具体的,所以不能在机上调试。你试试吧。
aojunpeng313001 2004-08-02
  • 打赏
  • 举报
回复
还是这个错误:

未处理的“System.NullReferenceException”类型的异常出现在 ConsoleApplication4.exe 中。


DataRelation custOrderRel = new DataRelation( "CustOrders", thisDataSet.Tables

["TestTable"].Columns["UserID"], thisDataSet.Tables

["TestTable2"].Columns["UserID"] );

BearRui 2004-08-02
  • 打赏
  • 举报
回复
try:

DataRelation custOrderRel = new DataRelation( "CustOrders", thisDataSet.Tables

["TestTable"].Columns["UserID"], thisDataSet.Tables

["TestTable2"].Columns["UserID"] );

thisDataSet.Relations.Add(custOrderRel);

110,533

社区成员

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

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

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