Я использую древовидное представление, связанное с SQL-сервером. У меня есть две столы и улица, где есть много улиц. Я населяю свое дерево, имея в каждой области только улицы, связанные с этой областью. Я получаю улицы до 1-го района, а второй районный узел имеет свои улицы и улицы 1-го районного узла и так далее, мне нужно устранить лишние улицы. Вот мой код:повторяющееся значение в дочерних узлах в виде дерева C#
private void PopulateTreeview1()
{
DataTable dt = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
SqlCommand cmd1 = cnn.CreateCommand();
cmd1.CommandText = "select areaId,areaName from area";
SqlDataAdapter sdr1 = new SqlDataAdapter(cmd1);
cmd1.CommandType = CommandType.Text;
cmd1.Connection = cnn;
sdr1.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
// Current areaId and areaname is stored
string areaID = dt.Rows[i]["areaId"].ToString();
string areaName = dt.Rows[i]["areaName"].ToString();
TreeNode AreaNode = new TreeNode(areaName);
SqlCommand cmd2 = cnn.CreateCommand();
cmd2.CommandText = "SELECT streetId, streetName FROM street WHERE areaId = @areaId";
cmd2.CommandType = CommandType.Text;
cmd2.Parameters.AddWithValue("@areaId", areaID);
SqlDataAdapter sdr2 = new SqlDataAdapter(cmd2);
cmd2.Connection = cnn;
sdr2.Fill(dt2);
for (int j = 0; j < dt2.Rows.Count; j++)
{
// Current StreetName and StreetId is stored
string streetId = dt2.Rows[j]["streetId"].ToString();
string streetName = dt2.Rows[j]["streetName"].ToString();
// A TreeNode is created with current StreetName
TreeNode StreetNode = new TreeNode(streetName);
// Current StreetNode is added as child node of AreaNode
AreaNode.Nodes.Add(StreetNode);
}
treeView1.Nodes.Add(AreaNode);
}
}
пожалуйста, мне нужна помощь.
Как я считаю, что вы можете сделать один SQL запрос с использованием JOIN 'выберите Areaid, areaName, StreetName, streetId из area join street On area.areaId == street.areaId' И затем заполнить сетку на основе результата запроса. – Valentin
извините, но могу у объяснить больше, где я должен использовать этот запрос am новичок в C# –
Мне нужно исправить его с помощью моего примера, потому что мне нужно добавить еще несколько дочерних узлов с одним и тем же состоянием, пожалуйста, помогите кому-нибудь! –