查询的两个数据集怎么绑定到一个datalist 或 repater中呢
还有repeater怎么绑定后台变量??请教~stringstrsql="selectdistinctconvert(varchar(10),Rent_Date,21)f...
还有 repeater怎么绑定后台变量?? 请教~
string strsql = "select distinct convert(varchar(10),Rent_Date,21) from dRidAcc where Org_ID='"+Session["Dept_ID"].ToString()+"' and substring(convert(varchar(10),Rent_Date,21),1,7) between '"+eStart_Month.Value.ToString()+"' and '"+eEnd_Month.Value.ToString()+"'";
SqlDataAdapter mycommand = new SqlDataAdapter(strsql, conn);//数据操作
DataSet ds = new DataSet();
mycommand.Fill(ds,"dRidAcc");
//hcy.WarnMsgOK(ds.Tables["dRidAcc"].Rows.Count.ToString()); 2
for(int i=0;i<ds.Tables["dRidAcc"].Rows.Count;i++)
{
string strsql1="select max(Bat_No)as Bat_No,count(*)as count,sum(Month_Amt)as smonth from dRidAcc where Rent_Date = '"+ds.Tables[0].Rows[0][i].ToString()+"'";
SqlDataAdapter mycommand1 = new SqlDataAdapter(strsql1, conn);//数据操作
DataSet ds1 = new DataSet();
mycommand.Fill(ds1);
}
是这样的 我想查询出月中的某天的合计数 在这个月到那个月之间 怎么做呢 高手指点 展开
string strsql = "select distinct convert(varchar(10),Rent_Date,21) from dRidAcc where Org_ID='"+Session["Dept_ID"].ToString()+"' and substring(convert(varchar(10),Rent_Date,21),1,7) between '"+eStart_Month.Value.ToString()+"' and '"+eEnd_Month.Value.ToString()+"'";
SqlDataAdapter mycommand = new SqlDataAdapter(strsql, conn);//数据操作
DataSet ds = new DataSet();
mycommand.Fill(ds,"dRidAcc");
//hcy.WarnMsgOK(ds.Tables["dRidAcc"].Rows.Count.ToString()); 2
for(int i=0;i<ds.Tables["dRidAcc"].Rows.Count;i++)
{
string strsql1="select max(Bat_No)as Bat_No,count(*)as count,sum(Month_Amt)as smonth from dRidAcc where Rent_Date = '"+ds.Tables[0].Rows[0][i].ToString()+"'";
SqlDataAdapter mycommand1 = new SqlDataAdapter(strsql1, conn);//数据操作
DataSet ds1 = new DataSet();
mycommand.Fill(ds1);
}
是这样的 我想查询出月中的某天的合计数 在这个月到那个月之间 怎么做呢 高手指点 展开
4个回答
展开全部
在代码编写中经常使用DataSet做为控件的数据源,通常一个控件只能绑定一个数据源。如果要将多次查询数据库的结果绑定到一个控件中,就必须把多次查询的结果填充到同一个数据源中。当然此功能也可以动态画表格来实现,不过我感觉动态处理表格实在是太麻烦了。为此做了以下测试并且试验成功,现在分享出来。
原理:将多次查询的结果填充到同一个DataSet的同一张Table中,不过两次填充时要将字段as成同样的别名,要不然就会出现不必要的NULL行。
代码如下:
private void databing()
{
string sql1="select xqid as yhm ,xqmc as zsxm from xt_xq";//
string sql2="select xt_zdb_style as yhm ,description as zsxm from xt_zdb";//sql1 、sql2使用相同的字段别名yhm、zsxm
using (OracleConnection connection = new OracleConnection("Data Source=abeen;User Id=system;Password=abeen;"))
{
DataSet ds = new DataSet();
try
{
connection.Open();
OracleDataAdapter command = new OracleDataAdapter(sql2,connection);
command.Fill(ds,0,5,"TableName"); //第一次填充数据到TableName
command = new OracleDataAdapter(sql1,connection);
command.Fill(ds,"TableName"); //第二次填充数据到TableName
this.DataGrid1.DataSource=ds; //两次填充的结果都在ds的TableName中
this.DataGrid1.DataBind();
}
catch(System.Data.OracleClient.OracleException ex)
{
throw new Exception(ex.Message);
}
}
}
原理:将多次查询的结果填充到同一个DataSet的同一张Table中,不过两次填充时要将字段as成同样的别名,要不然就会出现不必要的NULL行。
代码如下:
private void databing()
{
string sql1="select xqid as yhm ,xqmc as zsxm from xt_xq";//
string sql2="select xt_zdb_style as yhm ,description as zsxm from xt_zdb";//sql1 、sql2使用相同的字段别名yhm、zsxm
using (OracleConnection connection = new OracleConnection("Data Source=abeen;User Id=system;Password=abeen;"))
{
DataSet ds = new DataSet();
try
{
connection.Open();
OracleDataAdapter command = new OracleDataAdapter(sql2,connection);
command.Fill(ds,0,5,"TableName"); //第一次填充数据到TableName
command = new OracleDataAdapter(sql1,connection);
command.Fill(ds,"TableName"); //第二次填充数据到TableName
this.DataGrid1.DataSource=ds; //两次填充的结果都在ds的TableName中
this.DataGrid1.DataBind();
}
catch(System.Data.OracleClient.OracleException ex)
{
throw new Exception(ex.Message);
}
}
}
展开全部
在查询中先将2个数据集用UNION连接为一个数据集进行绑定.
Repeater 绑定数据用 Eval("FieldName").
Repeater 绑定数据用 Eval("FieldName").
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要合并成一个最后
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以使用
Merge
方法将
DataSet、DataTable
或
DataRow
数组的内容合并到现有的
DataSet
中。
若干因素和选项会影响将新数据合并到现有
DataSet
中的方式。
请参见:
http://msdn.microsoft.com/zh-cn/worldwide/aszytsd8.aspx
Repeater绑定后台变量如:
CS文件定义:
///
<summary>
///
每页记录数
///
</summary>
protected
static
int
intPageSize
=
10;
///
<summary>
///
当前页数
///
</summary>
protected
int
intCurrentPage
=
10;
那么在Repeater中编号列可以这样绑定:
<%#
Container.ItemIndex
+
1
+
intPageSize
*
(intCurrentPage
-
1)%>
Merge
方法将
DataSet、DataTable
或
DataRow
数组的内容合并到现有的
DataSet
中。
若干因素和选项会影响将新数据合并到现有
DataSet
中的方式。
请参见:
http://msdn.microsoft.com/zh-cn/worldwide/aszytsd8.aspx
Repeater绑定后台变量如:
CS文件定义:
///
<summary>
///
每页记录数
///
</summary>
protected
static
int
intPageSize
=
10;
///
<summary>
///
当前页数
///
</summary>
protected
int
intCurrentPage
=
10;
那么在Repeater中编号列可以这样绑定:
<%#
Container.ItemIndex
+
1
+
intPageSize
*
(intCurrentPage
-
1)%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询