Да, в C# возможно связать TreeView с таблицей БД SQL. Для этого нужно произвести следующие шаги:
- Подключите необходимые библиотеки: System.Data.SqlClient, System.Windows.Forms.
- Создайте соединение с базой данных SQL с помощью класса SqlConnection. Укажите строку подключения, которая содержит информацию о сервере, базе данных и учетных данных пользователя.
- Создайте команду SQL, которая выбирает данные из таблицы в БД. Для этого используйте класс SqlCommand и передайте SQL-запрос в конструктор команды.
- Выполните команду SQL с помощью метода ExecuteReader(). Это вернет вам объект SqlDataReader, который можно использовать для чтения данных из БД.
- Создайте экземпляр класса TreeNode, который будет представлять корневой узел TreeView.
- Используя цикл while, прочитайте каждую строку данных из SqlDataReader и добавьте соответствующие узлы TreeView с помощью метода Add() класса TreeNode. Установите Text свойство узла в значение, которое вы хотите отображать.
- Если у вас есть дополнительные уровни в иерархии, вы можете использовать вложенные циклы while и создавать новые экземпляры TreeNode для каждого уровня.
- Добавьте корневой узел TreeView в управляющую панель Windows Forms или другой контейнер, чтобы отобразить его.
Приведенный ниже пример демонстрирует, как связать TreeView с таблицей БД SQL:
using System; using System.Data.SqlClient; using System.Windows.Forms; namespace TreeViewDatabase { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { string connectionString = "Server=myServerAddress;Database=myDatabase;User Id=myUsername;Password=myPassword;"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string sqlQuery = "SELECT * FROM MyTable"; using (SqlCommand command = new SqlCommand(sqlQuery, connection)) { using (SqlDataReader reader = command.ExecuteReader()) { TreeNode rootNode = new TreeNode("Root Node"); while (reader.Read()) { string dataValue = reader["ColumnName"].ToString(); TreeNode childNode = new TreeNode(dataValue); rootNode.Nodes.Add(childNode); } treeView1.Nodes.Add(rootNode); } } } } } }
Это основной шаблон, который вы можете настроить в соответствии с вашими потребностями.