数据多表连接问题,请指教

javastart 2004-09-01 10:03:10
我先建两个表人员表和部门表,它们通过iDrpDepID进行连接
CREATE TABLE TDrpPerson( iDrpPersonID INT NOT NULL IDENTITY,
cName VARCHAR(20) NOT NULL, --姓名
iDrpDepID INT NOT NULL) --所属部门

CREATE TABLE TDrpDep (iDrpDepID INT NOT NULL IDENTITY,
cName VARCHAR(60) NOT NULL) --部门名称
接下去是C#代码,建立这两个表的连接,它提示这些列当前不具有唯一值,代码如下
string myConnectionString="";
if(myConnectionString == "")
{
myConnectionString = "Initial Catalog=drpkt;Data Source=localhost;Integrated Security=SSPI;";
}
SqlConnection myConnection = new SqlConnection(myConnectionString);
myConnection.Open();

string SQL="select * from tdrpperson;select * from tdrpdep";
string SQL1="select * from tdrpdep;";
SqlDataAdapter da=new SqlDataAdapter(SQL,myConnection);
SqlDataAdapter da1=new SqlDataAdapter(SQL1,myConnection);
dataSet1=new DataSet ();
da.Fill(dataSet1,"tdrpperson");
da1.Fill(dataSet1,"tdrpdep");
System.Data.DataRelation dr;
System.Data.DataColumn dc1;
System.Data.DataColumn dc2;

dc1 = dataSet1.Tables["tdrpperson"].Columns["iDrpDepID"];
dc2 = dataSet1.Tables["tdrpdep"].Columns["iDrpDepID"];
//问题处
dataSet1.Relations.Add("persondep", dc1, dc2);
myConnection.Close();
...全文
139 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
javastart 2004-09-04
解决了,我将主从表搞反了,谢谢,上面两位的指点
  • 打赏
  • 举报
回复
javastart 2004-09-02
请问一下我的方法是有问题?我看了很多资料,有好几种办法都不行
  • 打赏
  • 举报
回复
cjzlxy 2004-09-02
用一个SqlDataAdapter 不就够了.
SqlDataAdapter da=new SqlDataAdapter(SQL,myConnection);
da.Fill(dataset,"table1","table2");
他会自动给你建立关联的
  • 打赏
  • 举报
回复
javastart 2004-09-02
对不起,我按照你的做了一下,还是提示这些列当前不具有唯一值
  • 打赏
  • 举报
回复
shanyou 2004-09-01
按照wy_zhu(小燕儿) 的去做吧
  • 打赏
  • 举报
回复
wy_zhu 2004-09-01
最好把iDrpPersonID 和iDrpDepID建成主键,然后对表TDrpPerson加入约束constraint FK_iDrpDepID foreign key(iDrpDepID) references TDrpDep(iDrpDepID),这样就应该不会有问题了,除非你的表数据有重复。
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.7w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
申请成为版主
帖子事件
创建了帖子
2004-09-01 10:03
社区公告

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