例如:
原表:
id name values
1 张三 A
2 李四 B
3 张三 C
显示为:
id name values
1 张三 A|C
2 李四 B
这个方法该如何写啊。我用的是access数据库。
要求:不适用SQL函数及access函数只用数据合并..我没多少分,抱歉啊
原表:
id name values
1 张三 A
2 李四 B
3 张三 C
显示为:
id name values
1 张三 A|C
2 李四 B
这个方法该如何写啊。我用的是access数据库。
要求:不适用SQL函数及access函数只用数据合并..我没多少分,抱歉啊
用.net方法 不能用sql方法啊
Hashtable ht = new Hashtable();
DataTable dt = new DataTable();
DataColumn dc = new DataColumn("id");
dt.Columns.Add(dc);
dc = new DataColumn("name");
dt.Columns.Add(dc);
dc = new DataColumn("values");
dt.Columns.Add(dc);
DataRow dr = dt.NewRow();
dr["id"] = 1;
dr["name"] = "张三";
dr["values"] = "A";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 2;
dr["name"] = "李四";
dr["values"] = "B";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 3;
dr["name"] = "张三";
dr["values"] = "C";
dt.Rows.Add(dr);
dataGridView1.DataSource = dt; //合并
for (int i = 0; i < dt.Rows.Count; i++ )
{
if (ht.ContainsKey(dt.Rows[i]["name"]))
{
//获取行索引
int index = (int)ht[dt.Rows[i]["name"]];
//获取最近一次的值(对应values)
string str = (string)dt.Rows[index]["values"];
//拼接
dt.Rows[index]["values"] = str + "|" + dt.Rows[i]["values"];
//删除重复行
dt.Rows.RemoveAt(i);
//调整索引减1
i--;
}
else
{
//保存名称以及行索引
ht.Add(dt.Rows[i]["name"], i);
}
2 李四 B
可以这样显示吗
string str;DateTable dt=?(这里是你获取的数据源)
List<string> s=new list<string>();
for (int i = 0; i < HQ_dt.Rows.Count; i++)
{
s.Add(dt.Rows[i]["values"].ToString());
if(s.Contains(dt.Rows[i]["values"].ToString()))
{
str=dt.Rows[i][i].ToString()+dt.Rows[i]["values"].ToString();}
}
{
int group_id; string strDS = null; DataTable dt = new DataTable();
DataSet dsGroupManager = groupManagerBLL.GetAllList();
foreach (DataRow drGroupManager in dsGroupManager.Tables[0].Rows)
{
group_id = int.Parse(drGroupManager["group_id"].ToString());
DataSet dsActionGroup = actionGroupBLL.GetList("group_id=" + group_id);
foreach (DataRow drActionGroup in dsActionGroup.Tables[0].Rows)
{
strDS += ("|" + drActionGroup["action"].ToString());
}
if (!dsGroupManager.Tables[0].Columns.Contains("action"))
dsGroupManager.Tables[0].Columns.Add("action");
drGroupManager["action"] = strDS;
strDS = null;
}
return dsGroupManager;
}