datalist读取的数据有重复,怎么才能让相同的数据只显示一条
dbda=newdb();stringstr="select*fromtb_shopwhereuser_name='"+Session["user"]+"'";OleDb...
db da = new db();
string str = "select * from tb_shop where user_name='" + Session["user"] + "'";
OleDbDataReader sdr = da.oledr(str);
shop_dl.DataSource = sdr;
shop_dl.DataKeyField = "sh_id";
shop_dl.DataBind();
sdr.Close(); 展开
string str = "select * from tb_shop where user_name='" + Session["user"] + "'";
OleDbDataReader sdr = da.oledr(str);
shop_dl.DataSource = sdr;
shop_dl.DataKeyField = "sh_id";
shop_dl.DataBind();
sdr.Close(); 展开
4个回答
2011-07-06
展开全部
1、从数据库方面考虑 select distinct name from users
2、如果你datalist中的相同数据是有序(相同的ID在一起)的
eg: ID
1
1
2
3
用以下方法(原理:相同ID的只取一次):
for(int x = 0; x < datalist.count; x++)
{
for(int y = x + 1; y < datalist.count; y++)
{
if (datalist[y] == datalist[x])
{
//取出你要的记录
}
}
3、如果你datalist中的相同数据是无序(相同的ID可能不在一起)的
eg: ID
1
2
3
1
用以下方法(这里以取出没有重复ID为例):
//[ 创建一个结果对象 ]
List<string> listResult=new List<string>();
//[ 循环datalist ]
for(int i = 0;i < datalist.Count; i++)
{
//[ 依次从datalist往listResult对象中放入不重复的值 ]
listResult.Add(datalist[i]);
//[ 从datalist中第i个值往后循环比较 ]
for(int j=i+1; j<datalist.Count)
{
//[ 判断是否有相同的ID]
if(datalist[i] == datalist[j])
{
//[ 有相同的ID ]
//[ 从datalist列表中移除后一个ID(即datalist[j]) ]
datalist.RemoveAt(j);
}
else
{
//[ 没有相同的ID ]
//[ 进行下一次循环 ]
j++
}
//[ 从datalist中移除已经加入到结果对象中的ID ]
datalist.RemoveAt(i);
}
}
当循环结束时,listResult列表中的值即您要的结果
listResult[0]=1;
listResult[1]=2;
listResult[2]=3;
另外,虚机团上产品团购,超级便宜
2、如果你datalist中的相同数据是有序(相同的ID在一起)的
eg: ID
1
1
2
3
用以下方法(原理:相同ID的只取一次):
for(int x = 0; x < datalist.count; x++)
{
for(int y = x + 1; y < datalist.count; y++)
{
if (datalist[y] == datalist[x])
{
//取出你要的记录
}
}
3、如果你datalist中的相同数据是无序(相同的ID可能不在一起)的
eg: ID
1
2
3
1
用以下方法(这里以取出没有重复ID为例):
//[ 创建一个结果对象 ]
List<string> listResult=new List<string>();
//[ 循环datalist ]
for(int i = 0;i < datalist.Count; i++)
{
//[ 依次从datalist往listResult对象中放入不重复的值 ]
listResult.Add(datalist[i]);
//[ 从datalist中第i个值往后循环比较 ]
for(int j=i+1; j<datalist.Count)
{
//[ 判断是否有相同的ID]
if(datalist[i] == datalist[j])
{
//[ 有相同的ID ]
//[ 从datalist列表中移除后一个ID(即datalist[j]) ]
datalist.RemoveAt(j);
}
else
{
//[ 没有相同的ID ]
//[ 进行下一次循环 ]
j++
}
//[ 从datalist中移除已经加入到结果对象中的ID ]
datalist.RemoveAt(i);
}
}
当循环结束时,listResult列表中的值即您要的结果
listResult[0]=1;
listResult[1]=2;
listResult[2]=3;
另外,虚机团上产品团购,超级便宜
展开全部
你把你的数据查询 去掉重复的 就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string str = "select distinct * from tb_shop where user_name='" + Session["user"] + "'";
追问
我用了distinct,但是不管用啊,这个datalist控件(shop_dl)还是显示的是重复的数据,如果我把那个 * 改为ord_num,然后再在ord_num的前面加上distinct,系统就会提示错误信息:DataBinding:“System.Data.Common.DbDataRecord”不包含名为“sh_id”的属性,我不知道到底是怎么回事,很奇怪的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-06-29
展开全部
这个,我也遇到了,求解。还有关于Datalist嵌套的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询