创建新数据时的ArgumentNullException

时间:2010-05-04 09:11:56

标签: c# datarelation

我在SQL Server中有两个不相关的表。我想通过C#与它们建立关系,所以SQL Server中的数据库图有关系线等(代码可能有缺陷,除了缺少使用语句等,除此之外让我知道)。

到目前为止我有这个代码:

   SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=Test;Integrated Security=SSPI");

        SqlDataAdapter ad1;
        SqlDataAdapter ad2;

        DataSet ds = new DataSet();
        DataRelation dr;


        ad1 = new SqlDataAdapter("Select * from dept", con);
        ad2 = new SqlDataAdapter("select * from emp", con);
        ad1.Fill(ds, "dept");
        ad2.Fill(ds, "emp");
        DataColumn pk = ds.Tables["dept"].Columns["deptno"];
        DataColumn fk = ds.Tables["emp"].Columns["deptno"];
        dr = new DataRelation("rel", pk, fk, false)
        ds.Relations.Add(dr);

        ds.AcceptChanges();
        ad1.Update(ds, "dept");
        ad2.Update(ds, "emp");

当我到达这一行时:

        dr = new DataRelation("rel", pk, fk, false)

我得到了这个例外:

'column'参数不能为null。 参数名称:列

是否有可能以这种方式在SQL Server中实际形成关系?

是什么给出了?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

您在代码中声明的关系不会在数据库中结束。它只存在于你的DataSet中(至少我认为就是这种情况)。