Вывод баз в ComboBox
От: Art-K Украина  
Дата: 16.07.07 12:33
Оценка:
Программа выводит дерево доменов и компьютеров(на которых стоит SQL-сервер с базами данных). Проблемка в том, что при клике на компьютер, должны в ComboBox выводится все базы, которые на нем находятся. Получается требуется при выборе(клик мышой) на компьютер срабатывать событие и соединяется с сервером на этом компьютере, выводит в ComboBox все базы.
Обработчик для клика работает. Как написать метод, который будет получать имя выбраного компьютера, соединится с SQL — сервером и выведет базы в комбобокс? за примерчик буду благодарен.
Re: Вывод баз в ComboBox
От: kisel Украина  
Дата: 16.07.07 12:47
Оценка:
Здравствуйте, Art-K, Вы писали:

AK>Программа выводит дерево доменов и компьютеров(на которых стоит SQL-сервер с базами данных). Проблемка в том, что при клике на компьютер, должны в ComboBox выводится все базы, которые на нем находятся. Получается требуется при выборе(клик мышой) на компьютер срабатывать событие и соединяется с сервером на этом компьютере, выводит в ComboBox все базы.

AK> Обработчик для клика работает. Как написать метод, который будет получать имя выбраного компьютера, соединится с SQL — сервером и выведет базы в комбобокс? за примерчик буду благодарен.
Тема не один раз обсуждалась, поищете на форуме ...
Re: Вывод баз в ComboBox
От: SlaVVVa Россия  
Дата: 16.07.07 13:11
Оценка:
Здравствуйте, Art-K, Вы писали:


using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            string dataSource = "(local)";
            string userID = "sa";
            string password = "123456";

            List<string> bases = GetDatabaseList(dataSource, userID, password);

            foreach (string db in bases)
                Console.WriteLine(db);
        }

        private static List<string> GetDatabaseList(string dataSource, string userID, string password)
        {
            List<string> bases = new List<string>();

            SqlConnectionStringBuilder conStringBuilder = 
                new SqlConnectionStringBuilder();
            conStringBuilder.DataSource = dataSource;
            conStringBuilder.UserID = userID;
            conStringBuilder.Password = password;

            SqlConnection connection = new SqlConnection(conStringBuilder.ToString());
            connection.Open();
            
            SqlCommand command = new SqlCommand("sp_databases", connection);
            command.CommandType = System.Data.CommandType.StoredProcedure;

            SqlDataReader reader = command.ExecuteReader();
            if (reader.HasRows)
                while (reader.Read())
                    bases.Add(reader.GetString(0));
            
            connection.Dispose();

            return bases;
        }
    }
}
Поймете смысл — найдутся слова.
Катон.
Re[2]: Вывод баз в ComboBox
От: Art-K Украина  
Дата: 17.07.07 08:15
Оценка:
Здравствуйте, SlaVVVa, Вы писали:

SVV>Здравствуйте, Art-K, Вы писали:



SVV>
SVV>using System;
SVV>using System.Collections.Generic;
SVV>using System.Text;
SVV>using System.Data.SqlClient;

SVV>namespace ConsoleApplication12
SVV>{
SVV>    class Program
SVV>    {
SVV>        static void Main(string[] args)
SVV>        {
SVV>            string dataSource = "(local)";
SVV>            string userID = "sa";
SVV>            string password = "123456";

SVV>            List<string> bases = GetDatabaseList(dataSource, userID, password);

SVV>            foreach (string db in bases)
SVV>                Console.WriteLine(db);
SVV>        }

SVV>        private static List<string> GetDatabaseList(string dataSource, string userID, string password)
SVV>        {
SVV>            List<string> bases = new List<string>();

SVV>            SqlConnectionStringBuilder conStringBuilder = 
SVV>                new SqlConnectionStringBuilder();
SVV>            conStringBuilder.DataSource = dataSource;
SVV>            conStringBuilder.UserID = userID;
SVV>            conStringBuilder.Password = password;

SVV>            SqlConnection connection = new SqlConnection(conStringBuilder.ToString());
SVV>            connection.Open();
            
SVV>            SqlCommand command = new SqlCommand("sp_databases", connection);
SVV>            command.CommandType = System.Data.CommandType.StoredProcedure;

SVV>            SqlDataReader reader = command.ExecuteReader();
SVV>            if (reader.HasRows)
SVV>                while (reader.Read())
SVV>                    bases.Add(reader.GetString(0));
            
SVV>            connection.Dispose();

SVV>            return bases;
SVV>        }
SVV>    }
SVV>}
SVV>

За пример спасиба, понял процесс конекта сделал.
Можна показать в примере как при клике на компьютере выводить в комбобоксе все базы на этом компьютере? Помогите, буду благодарен.
Re[3]: Вывод баз в ComboBox
От: SlaVVVa Россия  
Дата: 17.07.07 08:44
Оценка:
Здравствуйте, Art-K, Вы писали:

AK>Можна показать в примере как при клике на компьютере выводить в комбобоксе все базы на этом компьютере?


Может я вас неправильно понял:

1.у вас есть имя компа, логин и пароль к SQL servery на нем.
2.вам нужно по исходным данным получить список баз данных, которые имеются в SQL server?

если так, то премер выше делает именно это!

1. В метод GetDataBaseList вы передаете:
— имя компа — DataSource
— логин — userID
— пароль — password

2. Если коннект возможен метод вернет List<string> — который будет хранить все имена БД.
Они в привере выведутся на экран монитора!

3. Если вам нужно их отобразить в соmbobox'е можно например передать этот листбокс в метод


        private void InitComboBoxItems(List<string> items)
        {
            foreach(string item in items)
                comboBox1.Items.Add(item);
        }


где comboBox1 — имя вашего комбобокса



Если я вас не понял — опишите подробнее.
Поймете смысл — найдутся слова.
Катон.
Re[4]: Вывод баз в ComboBox
От: Art-K Украина  
Дата: 17.07.07 10:59
Оценка:
Здравствуйте, SlaVVVa, Вы писали:

SVV>Здравствуйте, Art-K, Вы писали:


AK>>Можна показать в примере как при клике на компьютере выводить в комбобоксе все базы на этом компьютере?


SVV>Может я вас неправильно понял:


SVV>1.у вас есть имя компа, логин и пароль к SQL servery на нем.

SVV>2.вам нужно по исходным данным получить список баз данных, которые имеются в SQL server?

SVV>если так, то премер выше делает именно это!


SVV>1. В метод GetDataBaseList вы передаете:

SVV> — имя компа — DataSource
SVV> — логин — userID
SVV> — пароль — password

SVV>2. Если коннект возможен метод вернет List<string> — который будет хранить все имена БД.

SVV> Они в привере выведутся на экран монитора!

SVV>3. Если вам нужно их отобразить в соmbobox'е можно например передать этот листбокс в метод



SVV>
SVV>        private void InitComboBoxItems(List<string> items)
SVV>        {
SVV>            foreach(string item in items)
SVV>                comboBox1.Items.Add(item);
SVV>        }
SVV>


SVV>где comboBox1 — имя вашего комбобокса




SVV>Если я вас не понял — опишите подробнее.

Вы все правильно описали с подробностями. Так как опыта в C# мало, незнаю в какой части кода объявить GetDataBaseList, чтоб он вызывался сразу после выбора компьютера в дереве?
Re[5]: Вывод баз в ComboBox
От: Аноним  
Дата: 17.07.07 11:56
Оценка:
Здравствуйте, Art-K, Вы писали:

AK>Так как опыта в C# мало, незнаю в какой части кода объявить GetDataBaseList, чтоб он вызывался сразу после выбора компьютера в дереве?


Компьютер выбирается в TreeView?
Re[6]: Вывод баз в ComboBox
От: Art-K Украина  
Дата: 17.07.07 12:02
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Art-K, Вы писали:


AK>>Так как опыта в C# мало, незнаю в какой части кода объявить GetDataBaseList, чтоб он вызывался сразу после выбора компьютера в дереве?


А>Компьютер выбирается в TreeView?


В дереве находятся все компьютеры домена, а при клике на одном из них должны в комбобоксе выводится базы этого компьютера
Re[6]: Вывод баз в ComboBox
От: Art-K Украина  
Дата: 17.07.07 12:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Art-K, Вы писали:


AK>>Так как опыта в C# мало, незнаю в какой части кода объявить GetDataBaseList, чтоб он вызывался сразу после выбора компьютера в дереве?


А>Компьютер выбирается в TreeView?


Да в TreeView выбираются.
Re[7]: Вывод баз в ComboBox
От: SlaVVVa Россия  
Дата: 17.07.07 12:17
Оценка:
Здравствуйте, Art-K, Вы писали:

AK>Да в TreeView выбираются.


Вот пример:


// Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            string computerName = ((TreeView)sender).SelectedNode.Text;
            label1.Text = computerName; // ипользуем как DataSource может быть ip адресом

            // тут вызов функции возвращающей список баз


            // тут инициализация combobox
        }
    }
}



// Form1.Designer.cs
namespace WindowsApplication2
{
    partial class Form1
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("Computer1");
            System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("Computer2");
            System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("Computer3");
            this.treeView1 = new System.Windows.Forms.TreeView();
            this.label1 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.SuspendLayout();
            // 
            // treeView1
            // 
            this.treeView1.Location = new System.Drawing.Point(12, 12);
            this.treeView1.Name = "treeView1";
            treeNode4.Name = "Node1";
            treeNode4.Text = "Computer1";
            treeNode5.Name = "Node2";
            treeNode5.Text = "Computer2";
            treeNode6.Name = "Node3";
            treeNode6.Text = "Computer3";
            this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
            treeNode4,
            treeNode5,
            treeNode6});
            this.treeView1.Size = new System.Drawing.Size(92, 56);
            this.treeView1.TabIndex = 0;
            this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(183, 12);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(66, 13);
            this.label1.TabIndex = 1;
            this.label1.Text = "не выбрано";
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(110, 12);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(67, 13);
            this.label2.TabIndex = 2;
            this.label2.Text = "Имя компа:";
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(312, 81);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.treeView1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.TreeView treeView1;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label2;
    }
}
Поймете смысл — найдутся слова.
Катон.
Re[8]: Вывод баз в ComboBox
От: Art-K Украина  
Дата: 17.07.07 14:27
Оценка:
Здравствуйте, SlaVVVa, Вы писали:

SVV>Здравствуйте, Art-K, Вы писали:


AK>>Да в TreeView выбираются.


SVV>Вот пример:



SVV>
SVV>// Form1.cs
SVV>using System;
SVV>using System.Collections.Generic;
SVV>using System.ComponentModel;
SVV>using System.Data;
SVV>using System.Drawing;
SVV>using System.Text;
SVV>using System.Windows.Forms;

SVV>namespace WindowsApplication2
SVV>{
SVV>    public partial class Form1 : Form
SVV>    {
SVV>        public Form1()
SVV>        {
SVV>            InitializeComponent();
SVV>        }

SVV>        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
SVV>        {
SVV>            string computerName = ((TreeView)sender).SelectedNode.Text;
SVV>            label1.Text = computerName; // ипользуем как DataSource может быть ip адресом

SVV>            // тут вызов функции возвращающей список баз


SVV>            // тут инициализация combobox
SVV>        }
SVV>    }
SVV>}
SVV>

По примеру добавил treeView1_AfterSelect. Инициализировал комбобокс и перед этим вызвал ф-ию. Но базы не выводятся. Покопался в MDSN с целью найти пример с List<string>, то что нашел не очень помогло.
Напиши, как в treeView1_AfterSelect вызвать эту ф-ию.
Re[9]: Нет дружище так не подет!
От: SlaVVVa Россия  
Дата: 17.07.07 14:49
Оценка:
Здравствуйте, Art-K, Вы писали:

AK> Напиши, как в treeView1_AfterSelect вызвать эту ф-ию.

Ну вы фрукт!!!
Давайте лучше так на mail мне zip архив своего проекта скиньте, я вам сам все сделаю!
Поймете смысл — найдутся слова.
Катон.
Re[10]: Нет дружище так не подет!
От: Art-K Украина  
Дата: 17.07.07 18:55
Оценка:
Здравствуйте, SlaVVVa, Вы писали:

SVV>Здравствуйте, Art-K, Вы писали:


SVV>Ну вы фрукт!!!

SVV>Давайте лучше так на mail мне zip архив своего проекта скиньте, я вам сам все сделаю!
Ф-ию дописал сам.
List<string> list = this.GetDatabaseList(computerName);

Работает.
Re[11]: Нет дружище так не подет!
От: SlaVVVa Россия  
Дата: 18.07.07 06:09
Оценка:
Здравствуйте, Art-K, Вы писали:

AK> Работает.

Ну вот — другое дело!
Поймете смысл — найдутся слова.
Катон.
Re[2]: Вывод баз в ComboBox
От: Kalian  
Дата: 31.07.07 15:59
Оценка:
SVV> SqlCommand command = new SqlCommand("sp_databases", connection);
А для Oracl яка команда (процедура)?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.