dataRelation未将对象引用设置到对象的实例错误
用的是pubs的数据库,所以大家都能看明白我说什么吧:
代码:public partial class relation : System.Web.UI.Page
{
private string connectionstring = WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
CreatList();
}
private void CreatList()
{
string sql = "SELECT au_id,au_lname,au_fname FROM Authors";
SqlConnection myConnection = new SqlConnection(connectionstring);
SqlCommand myCommand = new SqlCommand(sql,myConnection);
SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand);
DataSet mySet = new DataSet();
try
{
myConnection.Open();
myAdapter.Fill(mySet,"Authors");
myCommand.CommandText = "SELECT au_id,title_id FROM TitleAuthor";
myAdapter.Fill(mySet,"TitleAuther");
myCommand.CommandText = "SELECT title_id,title FROM Titles";
myAdapter.Fill(mySet,"Title");
}
catch (Exception err)
{
lblInfo.Text = err.Message;
}
finally
{
myConnection.Close();
}
DataRelation Titles_TitleAuthor = new DataRelation("Titles_TitleAuthor",mySet.Tables["Titles"].Columns["title_id"],mySet.Tables["TitleAuthor"].Columns["title_id"]);
DataRelation Authors_TitleAuthor = new DataRelation("Authors_TitleAuthor",mySet.Tables["Authors"].Columns["au_id"],mySet.Tables["TitleAuthors"].Columns["au_id"]);
mySet.Relations.Add(Titles_TitleAuthor);
mySet.Relations.Add(Authors_TitleAuthor);
foreach (DataRow rowAuthor in mySet.Tables["Authors"].Rows)
{
lblList.Text = "<br/><b>" + rowAuthor["au_fname"] + " " + rowAuthor["au_lname"] + "</b>";
foreach (DataRow rowTitleAuthor in rowAuthor.GetChildRows(Authors_TitleAuthor))
{
foreach (DataRow rowTitle in rowTitleAuthor.GetParentRows(Titles_TitleAuthor))
{
lblList.Text = " " + rowTitle["title"] + "<br/>";
}
}
}
}
}
错误:
DataRelation Titles_TitleAuthor = new DataRelation("Titles_TitleAuthor",mySet.Tables["Titles"].Columns["title_id"],mySet.Tables["TitleAuthor"].Columns["title_id"]);
DataRelation Authors_TitleAuthor = new DataRelation("Authors_TitleAuthor",mySet.Tables["Authors"].Columns["au_id"],mySet.Tables["TitleAuthors"].Columns["au_id"]);
局部变量检查,的确Titles_TitleAuthor和Authors_TitleAuthor为null,这个例子是apress beginning asp.net 2.0 in c#中的,所以我特意用书中代码,也是这个问题,检查数据库主键关系没有错误,请问问题在什么地方。
谢谢高手们的解答,小弟感激
代码:public partial class relation : System.Web.UI.Page
{
private string connectionstring = WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
CreatList();
}
private void CreatList()
{
string sql = "SELECT au_id,au_lname,au_fname FROM Authors";
SqlConnection myConnection = new SqlConnection(connectionstring);
SqlCommand myCommand = new SqlCommand(sql,myConnection);
SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand);
DataSet mySet = new DataSet();
try
{
myConnection.Open();
myAdapter.Fill(mySet,"Authors");
myCommand.CommandText = "SELECT au_id,title_id FROM TitleAuthor";
myAdapter.Fill(mySet,"TitleAuther");
myCommand.CommandText = "SELECT title_id,title FROM Titles";
myAdapter.Fill(mySet,"Title");
}
catch (Exception err)
{
lblInfo.Text = err.Message;
}
finally
{
myConnection.Close();
}
DataRelation Titles_TitleAuthor = new DataRelation("Titles_TitleAuthor",mySet.Tables["Titles"].Columns["title_id"],mySet.Tables["TitleAuthor"].Columns["title_id"]);
DataRelation Authors_TitleAuthor = new DataRelation("Authors_TitleAuthor",mySet.Tables["Authors"].Columns["au_id"],mySet.Tables["TitleAuthors"].Columns["au_id"]);
mySet.Relations.Add(Titles_TitleAuthor);
mySet.Relations.Add(Authors_TitleAuthor);
foreach (DataRow rowAuthor in mySet.Tables["Authors"].Rows)
{
lblList.Text = "<br/><b>" + rowAuthor["au_fname"] + " " + rowAuthor["au_lname"] + "</b>";
foreach (DataRow rowTitleAuthor in rowAuthor.GetChildRows(Authors_TitleAuthor))
{
foreach (DataRow rowTitle in rowTitleAuthor.GetParentRows(Titles_TitleAuthor))
{
lblList.Text = " " + rowTitle["title"] + "<br/>";
}
}
}
}
}
错误:
DataRelation Titles_TitleAuthor = new DataRelation("Titles_TitleAuthor",mySet.Tables["Titles"].Columns["title_id"],mySet.Tables["TitleAuthor"].Columns["title_id"]);
DataRelation Authors_TitleAuthor = new DataRelation("Authors_TitleAuthor",mySet.Tables["Authors"].Columns["au_id"],mySet.Tables["TitleAuthors"].Columns["au_id"]);
局部变量检查,的确Titles_TitleAuthor和Authors_TitleAuthor为null,这个例子是apress beginning asp.net 2.0 in c#中的,所以我特意用书中代码,也是这个问题,检查数据库主键关系没有错误,请问问题在什么地方。
谢谢高手们的解答,小弟感激
...全文
相关推荐
简单学习主从表
vs2003简单学习主从表
c#的DataSet绑定数据实例源码
c#的DataSet绑定数据实例源码,测试时候请先修改源代码内的数据库连接路径,否则打开EXE会报错,程序适合C#初学者学习之用,高人请路过。
DataSet对象 课件
某学院《数据库技术应用》的课件。 主要内容:ADO.NET中的DataSet对象;DataSet对象中的DataTable对象;DataTable对象中的DataColumn对象和DataRow对象;类型化数据集 利用DataSet修改数据;DataSet中的约束和数据关系;类型化数据集的应用 可供教师上课使用,也可供爱好者自学。
操作数据库中的数据[总结].pdf
操作数据库中的数据[总结].pdf
C# 自定义DataSet
C# 自定义DataSet qq:292258449


