从数据库中取数据,想把2个字段suBN1和suBN2下的数据列出,并且作为TreeView的一层节点,但是这2个字段的数据有重复,怎样把数据列出建好节点,且保证不能有重复?
比如数据库中:suBN1 包含:A,B,C,A,A,B。
suBN2 包含:A,B,C,D,E,A。
现在我想得到A,B,C,D。C#语句该怎么写
小弟是菜鸟,请大侠多多帮助
比如数据库中:suBN1 包含:A,B,C,A,A,B。
suBN2 包含:A,B,C,D,E,A。
现在我想得到A,B,C,D。C#语句该怎么写
小弟是菜鸟,请大侠多多帮助
如果存在则不加入,不存在则加入,最后使用ArrayList建立Treeview
class Node
{
private string value;
public String Value
{
get{}
}
.......
}在组成treeview的时候把
string treeNodesValues = null;
for(......遍历节点)
{
int index = treeNodesValues.indexOf(node.Value+"&&&&&&");
if(index>=0)
{
//把节点加入treeview
treeNodesValues = treeNodesValues + node.Value + "&&&&&&";
}
}其中“&&&&&&”起一个分割符号的作用
再遍历这个ArrayList是否有重复的存在.
{
string s1=dt.rows[i]["suBN1"].tostring();
string s2=dt.rows[i]["suBN2"].tostring(); if (!tv.Nodes.ContainsKey(s1))
{
tv.nodes.add(s1,s1)
} if (!tv.Nodes.ContainsKey(s2))
{
tv.nodes.add(s2,s2)
}}
DataTable dt = ... //取数据 for (int i=0;i <dt.rows.count;i++)
{
string s1=dt.rows[i]["suBN1"].tostring();
string s2=dt.rows[i]["suBN2"].tostring(); if (!tv.Nodes.ContainsKey(s1))
{
tv.nodes.add(s1,s1);
} if (!tv.Nodes.ContainsKey(s2))
{
tv.nodes.add(s2,s2);
} }
Survey3DDA BN3 = new Survey3DDA();
Dictionary<string, Survey3D> ltBN3 = BN3.GetAllSurvey3D();
if (ltBN3 != null)
{
foreach (Survey3D suBN3 in ltBN3.Values)
{
if (suBN3 != null && suBN3.BasinName != null)
{
TreeNode nodetq = new TreeNode();
nodetq.Tag = suBN3;
nodetq.Text = suBN3.BasinName;
treeView1.Nodes.Add(nodetq);
}
}
}
建的节点为
A
B
C
D
A
B
C
有重复。
我需要用同样方法也从2维工区表BasinName下取数据:A B C E F
把两次数据合并,并过滤重复(合并后应该只包含:A B C D E F),后再建节点。
现在我就是不知道怎么把从数据库中取出的suBN3.BasinName和suBN2.BasinName合并并过滤重复。小弟刚学C#,不知道大家看的懂我意思不,看的懂教教我,急啊!!!
Dictionary <string, Survey3D > ltBN3 = BN3.GetAllSurvey3D();
if (ltBN3 != null)
{
foreach (Survey3D suBN3 in ltBN3.Values)
{
if (suBN3 != null && suBN3.BasinName != null)
{
if (!treeView1.Nodes.ContainsKey(suBN3.BasinName))
{
TreeNode nodetq = treeView1.Nodes.Add(suBN3.BasinName, suBN3.BasinName);
nodetq.Tag = suBN3;
}
}
}
}
string a = "a,b,c,d,d,c,a,e,f,e,a,f,a,p,s,a,k";
string[] Alist; char [] cr; Alist = Regex.Split(a, ","); foreach(string s in Alist)
{ cr=s.ToCharArray();
int n = a.Split(cr).Length - 1;
if (n > 1)
{
int co = a.IndexOf(s);
a = a.Remove(co, 2);
}
} MessageBox.Show(a.ToString());复制这段代去看看
ABCDAAA(有重复)
ABEF
如果不加判断选择,取出来后是2者的相加ABCDAAA ABEF
我想把里面重复的去掉,只留ABCDEF。tao77的方法可以用。
请问怎么结帖??第一次提问。
刚学编程,上面的很多方法可能都行,但我看不懂,还是谢谢了。