如何用一个datalist绑定一个DataSet ds1后又绑定DataSet ds2

chuisi1111 2010-01-02 09:51:44
就是datalist里本来就填充了DataSet ds1里的数据,然后修改了datalist里的部分数据,然后又绑定DataSet ds2,最后显示的结果是DataSet ds1 跟ds2的数据,除了建议DataSet ds1跟ds2叠加后绑定datalist,因为在这期间,datalist里的数据以变更····
...全文
99 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuisi1111 2010-01-03
  • 打赏
  • 举报
回复
因为绑定了第一次DataSet之后,后面对datalist里面的按钮是否可执行已经更改了,第二次又让DataSet叠加上,那更改的效果又被现在覆盖了,
chuisi1111 2010-01-03
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class fWorkFlowTemplate : System.Web.UI.Page
{
int BoolNo;
MyClass myClass = new MyClass();
DataSet ds=new DataSet();
int TemplateNo;
int i = 0;
protected void Page_Load(object sender, EventArgs e)
{
//if (Session["RoleNo"] == null)
//{
// Response.Redirect("Login.aspx");
//}
if (!IsPostBack)
{
datalistbind();
}
}
protected void submit_OnClick(object sender, EventArgs e)
{
//DataSet ds=myClass.RunSql("select * from "
string query = "update fEventJoinPerson set ApprovalState=1 where PersonNo and EventNo=1 ";
SqlCommand cmd = MyClass.Cmd_Sql(query);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
datalistbind();
}

protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
{

}
protected void datalistbind()
{

Session["RoleNo"] = 1;
//string No = myClass.RunSql("select * from fEvent where RoleNo='"+Session["RoleNo"]+"'", "PreNo");
string query5="select * from fEvent where RoleNo='"+Session["RoleNo"]+"'";
SqlCommand cmd = MyClass.Cmd_Sql(query5);
cmd.Connection.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string PreNo = dr["PreNo"].ToString();
string query = "select a.PersonNo,c.TemplateName from fEventJoinPerson a,fEvent b,fWorkFlowTemplate c where a.EventNo=b.EventNo and a.ApprovalState=0 and b.RoleNo='" + Session["RoleNo"] + "' and c.TemplateNo=b.TemplateNo and b.EventNo='" + dr["EventNo"] + "'";
TemplateNo =(int)dr["TemplateNo"];
if (PreNo != "")
{
if (PreNo == "0")
{
BoolNo = -1;
//string query = "select a.PersonNo,c.TemplateName from fEventJoinPerson a,fEvent b,fWorkFlowTemplate c where a.EventNo=b.EventNo and a.ApprovalState=0 and b.RoleNo='" + Session["RoleNo"] + "' and c.TemplateNo=b.TemplateNo and b.EventNo='" + dr["EventNo"] + "'";
DataSet ds1 = myClass.RunSql(query);
ds.Merge(ds1);
}
else
{
//string query1 = "select * from fEvent where RoleNo='" + Session["RoleNo"] + "'";
//string frontNo = myClass.RunSql(query1, "PreNo");
BoolNo = Convert.ToInt32(PreNo) - 1;
//string query = "select a.PersonNo,c.TemplateName from fEventJoinPerson a,fEvent b,fWorkFlowTemplate c where a.EventNo=b.EventNo and a.ApprovalState=0 and b.RoleNo='" + Session["RoleNo"] + "' and c.TemplateNo=b.TemplateNo and b.EventNo='" +dr["EventNo"] + "'";
DataSet ds2 = myClass.RunSql(query);
ds.Merge(ds2);
}
this.DataList1.DataSource = ds;
this.DataList1.DataBind();
if (BoolNo == -1)
{
SqlCommand cmd2 = MyClass.Cmd_Sql("select count(*) from fEventJoinPerson where EventNo='" + dr["EventNo"] + "'");
cmd2.Connection.Open();
i += (int)cmd2.ExecuteScalar();
cmd2.Connection.Close();
}
else
{
boolCommand();
}

}
else
{
Response.Write("aaaaaaaaaaaa");
}
}
}
protected void boolCommand()
{
string query2 = "select a.ApprovalState from fEventJoinPerson a,fEvent b where a.EventNo=b.EventNo and TemplateNo='"+TemplateNo+"' and PreNo='" + BoolNo + "'";

SqlCommand cmd = MyClass.Cmd_Sql(query2);
cmd.Connection.Open();
SqlDataReader dr = cmd.ExecuteReader();

while (dr.Read())
{
string nextNo = dr["ApprovalState"].ToString();
if (nextNo == "1")
{

}
else if (nextNo == "0")
{
Button btn = (Button)DataList1.Items[i].FindControl("submit");
btn.Enabled = false;
}
i++;
}
}


}
xiao5654427 2010-01-03
  • 打赏
  • 举报
回复
.............
Lovely_baby 2010-01-03
  • 打赏
  • 举报
回复
或者就直接放到一个DataSet中存放~
DataSet ds = new  DataSet();

DataTable dt= new DataTable("a");
ds.Tables.Add(dt);

DataTable dt1 = new DataTable("b");
ds.Tables.Add(dt1);
Lovely_baby 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 chuisi1111 的回复:]
就是datalist里本来就填充了DataSet ds1里的数据,然后修改了datalist里的部分数据,然后又绑定DataSet ds2,最后显示的结果是DataSet ds1 跟ds2的数据,除了建议DataSet  ds1跟ds2叠加后绑定datalist,因为在这期间,datalist里的数据以变更····
[/Quote]
有些晕 ds1跟ds2叠加后绑定datalist是什么意思??
那重复的地方怎么办?
chuisi1111 2010-01-03
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class fWorkFlowTemplate : System.Web.UI.Page
{
int drReadNo = 0;
MyClass myClass = new MyClass();
DataSet ds=new DataSet();
int TemplateNo;
int i = 0;
SqlConnection conn = new SqlConnection("server=MICROSOF-620F9A\\SQLEXPRESS;database=JYDB;trusted_connection=true");
protected void Page_Load(object sender, EventArgs e)
{
//if (Session["RoleNo"] == null)
//{
// Response.Redirect("Login.aspx");
//}
if (!IsPostBack)
{
datalistbind();
}

}
protected void submit_OnClick(object sender, EventArgs e)
{

//DataSet ds=myClass.RunSql("select * from "
string query = "update fEventJoinPerson set ApprovalState=1 where PersonNo= and EventNo=1 ";
SqlCommand cmd = MyClass.Cmd_Sql(query);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
datalistbind();
}

protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
{

}
protected void datalistbind()
{
Session["RoleNo"] = 1;
//string No = myClass.RunSql("select * from fEvent where RoleNo='"+Session["RoleNo"]+"'", "PreNo");
string query5="select * from fEvent where RoleNo='"+Session["RoleNo"]+"'";
SqlCommand cmd = MyClass.Cmd_Sql(query5);
cmd.Connection.Open();
int n = (int)cmd.ExecuteScalar();
cmd.Connection.Close();
cmd.Connection.Open();
SqlDataReader dr = cmd.ExecuteReader();
int[] TemplateNo = new int[n+1];
int[] frontNo = new int[n+1];
while (dr.Read())
{
string PreNo = dr["PreNo"].ToString();
string query = "select a.PersonNo,c.TemplateName from fEventJoinPerson a,fEvent b,fWorkFlowTemplate c where a.EventNo=b.EventNo and a.ApprovalState=0 and b.RoleNo='" + Session["RoleNo"] + "' and c.TemplateNo=b.TemplateNo and b.EventNo='" + dr["EventNo"] + "'";
TemplateNo[drReadNo]=(int)dr["TemplateNo"];
if (PreNo != "")
{
if (PreNo == "0")
{
frontNo[drReadNo] = -1;
DataSet ds1 = myClass.RunSql(query);
ds.Merge(ds1);
}
else
{

frontNo[drReadNo] = Convert.ToInt32(PreNo) - 1;
DataSet ds2 = myClass.RunSql(query);
ds.Merge(ds2);
//SqlDataAdapter da = new SqlDataAdapter(query, conn);
//da.Fill(ds);

}
this.DataList1.DataSource = ds;
this.DataList1.DataBind();
if (frontNo[drReadNo] == -1)
{
SqlCommand cmd2 = MyClass.Cmd_Sql("select count(*) from fEventJoinPerson where EventNo='" + dr["EventNo"] + "'");
cmd2.Connection.Open();
i += (int)cmd2.ExecuteScalar();
cmd2.Connection.Close();
}
}
else
{
Response.Write("aaaaaaaaaaaa");
}
drReadNo++;
}
cmd.Connection.Close();
for (int j = 0; j < drReadNo; j++)
{
string query2 = "select a.ApprovalState from fEventJoinPerson a,fEvent b where a.EventNo=b.EventNo and TemplateNo='" + TemplateNo[j] + "' and PreNo='" + frontNo[j] + "'";

SqlCommand cmd3 = MyClass.Cmd_Sql(query2);
cmd3.Connection.Open();
SqlDataReader dr1 = cmd3.ExecuteReader();

while (dr1.Read())
{
string nextNo = dr1["ApprovalState"].ToString();
if (nextNo == "1")
{

}
else if (nextNo == "0")
{
Button btn = (Button)DataList1.Items[i].FindControl("submit");
btn.Enabled = false;
}
i++;
}
}

}


}
seesea125 2010-01-02
  • 打赏
  • 举报
回复
设计思路有问题
happyboyxq 2010-01-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
dataset添加多个datatable
DataTable dt1= new DataTable("one");
ds.Tables.Add(dt1);

DataTable dt2 = new DataTable("two");
ds.Tables.Add(dt2);

[/Quote]
这好像和LZ说的一样。
不过LZ这个东西应该是很难实现的,一个datalist只能有一个数据源,不叠加怎么把两个数据源的东西显示出来呢?
wuyq11 2010-01-02
  • 打赏
  • 举报
回复
dataset添加多个datatable
DataTable dt1= new DataTable("one");
ds.Tables.Add(dt1);

DataTable dt2 = new DataTable("two");
ds.Tables.Add(dt2);

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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