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

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();
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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),这样就应该不会有问题了,除非你的表数据有重复。

110,566

社区成员

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

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

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