怎样将两个或以上的表推进DATASET里?是不是要用两个或以上的数据适配器?怎样实现?

wwxc18 2004-01-27 04:17:30
请给简单而又完整的示例代码!
...全文
44 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjw19 2004-01-30
  • 打赏
  • 举报
回复
DataTable dt = new DataTable();

strsql = "select top 5 File_name_cn,Doc_name_cn,Doc_path,Doc_dissertation from docnews where Top_id ="+Top_id+" order by Doc_while desc ";
strsql+="select top 5 File_name_cn,Doc_name_cn,Doc_path,Doc_dissertation from docnews where Top_id =4 order by Doc_while desc ";
strsql+="select top 5 File_name_cn,Doc_name_cn,Doc_path,M_type from GWPmeeting order by Doc_while desc ";
strsql+="select top 5 File_name_cn,Doc_name_cn,Doc_path,Doc_dissertation from docnews where Top_id =5 order by Doc_while desc ";
strsql+="select top 5 File_name_cn,Doc_name_cn,Doc_path,Doc_dissertation from docnews where Top_id =6 order by Doc_while desc ";
strsql+="select top 5 File_name_cn,Doc_name_cn,Doc_path,Doc_dissertation from docnews where Top_id =7 order by Doc_while desc ";
DataSet ds = new DataSet();
ds = cb.GetDataSet(strsql);//就是一个dataset这是我写的返回一个dataset的代码,你可以不用管写自己的代码。
dt = ds.Tables[0];//新闻动态
foreach(DataRow dr in dt.Rows)
{
if(dr[3].ToString().Trim() =="N")
{
strtx = dr[0].ToString().Trim();
}
else
{
strtx = "[专题] "+dr[0].ToString().Trim();
}
HyperLink hlc = new HyperLink();
hlc.Text = ""+"· "+"<A class="+"body"+" href="+"GWPNews/GWPSigleNews.aspx?id="+ dr[2].ToString().Trim()+"\\"+dr[1].ToString().Trim() +" target=\"_blank\""+">" + strtx +"</A>"+"<br>";
this.TD1.Controls.Add(hlc);
}
dt = ds.Tables[1];//活动
foreach(DataRow dr in dt.Rows)
{
if(dr[3].ToString().Trim() =="N")
{
strtx = dr[0].ToString().Trim();
}
else
{
strtx = "[专题] "+dr[0].ToString().Trim();
}
HyperLink hlc = new HyperLink();
hlc.Text = ""+"· "+"<A class="+"body"+" href="+"GWPActive/GWPSigleActive.aspx?id="+ dr[2].ToString().Trim()+"\\"+dr[1].ToString().Trim() +" target=\"_blank\""+">" + strtx +"</A>"+"<br>";
this.Td2.Controls.Add(hlc);
}
.
.
.
.


只要写一个联合的sql语句就可以了,放到dataset里,取数据的时候根据不同的表取。
godblessyU 2004-01-30
  • 打赏
  • 举报
回复
这是上面的一个SqlCommand 对象,是跟微软的编程风格写的
private SqlCommand GetBatFileCommand()
{
  if ( BatFileCommand == null )
  {
    BatFileCommand = new SqlCommand("GetBatFileName",new SqlConnection(AppConfig.ConnectionString));
    BatFileCommand.CommandType = CommandType.StoredProcedure;
  }
  return BatFileCommand;
}
godblessyU 2004-01-30
  • 打赏
  • 举报
回复
DataSet data = new DataSet();
dsCommand.SelectCommand = GetBatFileCommand();
dsCommand.Fill(data,T_BATFILE_TABLE);

dsCommand.SelectCommand = GetTDZTableCommand();
dsCommand.Fill(objDS,TDZ00003_TABLE);

这样就在dataset里放两个表了,依次往下,跟楼上的方法一样
cnhgj 2004-01-30
  • 打赏
  • 举报
回复
同意楼上的
nehc 2004-01-30
  • 打赏
  • 举报
回复
适配器.Fill(datasetname,"表的名字")
多次fill,然后就可以给一个dataset填充多个表。
巍巍清风 2004-01-30
  • 打赏
  • 举报
回复
SqlDataAdapter da = new SqlDataAdapter ();
SqlConnection cnn = new SqlConnection();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = cnn;
da.SelectCommand.CommandText = "SELECT * FROM TableA; SELECT * FROM TableB";

DataSet ds = new DataSet();

da.Fill(ds);

return ds;
powerleft 2004-01-30
  • 打赏
  • 举报
回复
同意 BlueLevin(蔚蓝闪电)的做法,不过 command 没有必要,只要把适配器的selectcommand 赋值去从不同的数据库表中选数据,然后多次 Fill 就可以了.
巍巍清风 2004-01-30
  • 打赏
  • 举报
回复
如果数据库是SQL SERVER,可以只用一个适配器,在SelectCommand.CommandText 里写上两个SQL 语句,中间用";"(分号)分隔,填充的时候就可以填到两个表里去了。
BlueLevin 2004-01-30
  • 打赏
  • 举报
回复
我看这样比较好
实例化一个DataSet,一个适配器,一个链接,一个Command
Command的链接=链接;
适配器的命令=Command;
然后就是
适配器.Flli(DataSet);
网格控件的数据源=DataSet;
DimVar 2004-01-27
  • 打赏
  • 举报
回复
// 建立第1个DataTable
DataTable objTable1 = new DataTable("Table1");
objTable1.Columns.Add("ID", System.Type.GetType("System.Int32"));
DataRow objDataRow;

objDataRow = objTable1.NewRow();
objDataRow["ID"] = 1;

objTable1.Rows.Add(objDataRow);

// 建立第2个DataTable
DataTable objTable2 = new DataTable("Table2");
objTable2.Columns.Add("ID", System.Type.GetType("System.Int32"));

objDataRow = objTable2.NewRow();
objDataRow["ID"] = 1;

objTable2.Rows.Add(objDataRow);

// 加入到DataSet
DataSet ds = new DataSet();
ds.Tables.Add(objTable1);
ds.Tables.Add(objTable2);
leech125 2004-01-27
  • 打赏
  • 举报
回复
使用.xsd

110,571

社区成员

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

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

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