4个回答
展开全部
如果要显示两张数据库表的记录,最简单的方法是检索时将两张表中你要的数据一次检索出来,放入同一个DataTable来显示。
如果要显示两个以上DataTable中的数据,则需要将DataTable放入DataSet并建立relation就可以显示了。
下面是刚做的一个例子。另外,父表一定要有主键。建立关联时要用主键。
private void button1_Click(object sender, System.EventArgs e)
{
DataTable dtName = new DataTable("NameDt");
dtName.Columns.Add("ID", typeof(string));
dtName.Columns.Add("Name", typeof(string));
dtName.PrimaryKey = new DataColumn[] {dtName.Columns["ID"] };
dtName.Rows.Add("1", "Name1");
DataTable dtAddress = new DataTable("AddressDt");
dtAddress.Columns.Add("ID", typeof(string));
dtAddress.Columns.Add("Address", typeof(string));
dtAddress.Rows.Add("1", "Address1");
dtAddress.Rows.Add("1", "Address2");
DataSet ds = new DataSet();
ds.Tables.Add(dtName);
ds.Tables.Add(dtAddress);
// 关键!建立表之间的关联
ds.Relations.Add("ForName", dtName.Columns["ID"], dtAddress.Columns["ID"]);
// 在子表中添加计算列,引用父表的数据。
dtAddress.Columns.Add("Name", typeof(string), "Parent(ForName).Name");
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "AddressDt";
}
如果要显示两个以上DataTable中的数据,则需要将DataTable放入DataSet并建立relation就可以显示了。
下面是刚做的一个例子。另外,父表一定要有主键。建立关联时要用主键。
private void button1_Click(object sender, System.EventArgs e)
{
DataTable dtName = new DataTable("NameDt");
dtName.Columns.Add("ID", typeof(string));
dtName.Columns.Add("Name", typeof(string));
dtName.PrimaryKey = new DataColumn[] {dtName.Columns["ID"] };
dtName.Rows.Add("1", "Name1");
DataTable dtAddress = new DataTable("AddressDt");
dtAddress.Columns.Add("ID", typeof(string));
dtAddress.Columns.Add("Address", typeof(string));
dtAddress.Rows.Add("1", "Address1");
dtAddress.Rows.Add("1", "Address2");
DataSet ds = new DataSet();
ds.Tables.Add(dtName);
ds.Tables.Add(dtAddress);
// 关键!建立表之间的关联
ds.Relations.Add("ForName", dtName.Columns["ID"], dtAddress.Columns["ID"]);
// 在子表中添加计算列,引用父表的数据。
dtAddress.Columns.Add("Name", typeof(string), "Parent(ForName).Name");
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "AddressDt";
}
展开全部
打开数据库·视图··右键新建视图··
然后拖出你要查询的表··
只需你点击要查询的字段··把sql语句复制过去执行就好了·!
然后拖出你要查询的表··
只需你点击要查询的字段··把sql语句复制过去执行就好了·!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create table ClassInfo
(
cId int identity primary key,
cName varchar(50) not null
)
go
create table StuInfo
(
sId int identity primary key,
sName varchar(50) not null,
sCId int references ClassInfo(cId)
)
把sql语句告诉你。
string sql ="select sId,sName,(select cName from ClassInfo where cId=sCId) as cName from StuInfo";
(
cId int identity primary key,
cName varchar(50) not null
)
go
create table StuInfo
(
sId int identity primary key,
sName varchar(50) not null,
sCId int references ClassInfo(cId)
)
把sql语句告诉你。
string sql ="select sId,sName,(select cName from ClassInfo where cId=sCId) as cName from StuInfo";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
引用一楼数据结构:
*****************************************
create table ClassInfo
(
cId int identity primary key,
cName varchar(50) not null
)
go
create table StuInfo
(
sId int identity primary key,
sName varchar(50) not null,
sCId int references ClassInfo(cId)
)
把sql语句告诉你。
string sql ="select sId,sName,(select cName from ClassInfo where cId=sCId) as cName from StuInfo";
*****************************************
select A.sId,A.sName,B.cName from StuInfo AS A(nolock)
inner join ClassInfo AS B(nolock)
on A.sCID=B.cID
直接通过类似这条语句的SQL脚本将需要的多张表数据联合查询后作为一张表返回到前台,然后通过datagridview显示出来就OK了.
*****************************************
create table ClassInfo
(
cId int identity primary key,
cName varchar(50) not null
)
go
create table StuInfo
(
sId int identity primary key,
sName varchar(50) not null,
sCId int references ClassInfo(cId)
)
把sql语句告诉你。
string sql ="select sId,sName,(select cName from ClassInfo where cId=sCId) as cName from StuInfo";
*****************************************
select A.sId,A.sName,B.cName from StuInfo AS A(nolock)
inner join ClassInfo AS B(nolock)
on A.sCID=B.cID
直接通过类似这条语句的SQL脚本将需要的多张表数据联合查询后作为一张表返回到前台,然后通过datagridview显示出来就OK了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询