none
Как связать 2 datagridview в 2-х разных формах визуальными средствами Visual Studio? RRS feed

  • Вопрос

  • Имеются 2 связанные таблицы. Как связать 2 datagridview  в 2-х разных формах визуальными средствами Visual Studio? Чтобы при выборе строки на 1-й форме (1-й gridview), отображались ее связи на второй форме (2-й gridview)
    • Перемещено Tagore Bandlamudi 1 октября 2010 г. 21:48 MSDN Forums consolidation (От:Visual C#)
    17 июня 2010 г. 8:18

Ответы

  • Ну давай для начала попробуем.

    1. Создаешь 2 формы в проекте;

    2. Создаешь новый Data Source, выбираешь при создании DataSet  и тд.

    3. Кидаешь на каждую форму по таблице из DataSources, они автоматически создадут DataGridView BindingSource и еще чего-то...

    4. Во второй форме создаем событие, которое возникает, когда происходит изменение позиции в DGV.

     

        public delegate void MovedDelegate(string d);
        public event MovedDelegate MovedEvent;

     

    Это первый код который пишем руками, до этого все делали "визуальными средствами".

    5. Создаем обработчик события PositionChanged для BindingSource который создался во второй форме. В обработчике вызываем созданное в п.4 событие передаем в качестве параметра ключ по которому будем позиционировать вторую таблицу. В моем случае получилась вот такая контрукция:

     

    MovedEvent(this.expert8DataSet.Tables["reg1999"].Rows[this.reg1999BindingSource.Position]["dog"].ToString()); 

    6. В первой форме создаем кнопку. По клику запускаем вторую форму и вешаем обработчик на событие MovedEvent

          using (Form2 f2 = new Form2())
          {
            f2.MovedEvent += new Form2.MovedDelegate(f2_MovedEvent);
            f2.ShowDialog();
          }
    7. В обработчике устанавливаем положение BindingSource'а в зависимости от полученного а качестве параметра ключа.

        void f2_MovedEvent(string d)
        {
          this.reg1999BindingSource.Position = this.reg1999BindingSource.Find("dog", d);
        }

    Либо отфильтровываем, если нужно не позиционировать, а именно показать только дочерние записи.

        void f2_MovedEvent(string d)
        {
          this.reg1999BindingSource.Filter = "dog = '" + d + "'"; 
        }
    8. Запускаешь проект и убеждаешься, что изменение позиции в DataGrigView на второй форме ведет к изменению отображаемых данных на первой.

    Фух...

     

     

     

     

     

     

    • Предложено в качестве ответа ulcerModerator 18 июня 2010 г. 4:12
    • Помечено в качестве ответа I.Vorontsov 18 июня 2010 г. 6:02
    17 июня 2010 г. 13:12
    Модератор
  • Попытался сделать все заново. Получилось, работает, только наоборот :).
    Выбираются записи не в дочерней таблице, а в родительской. Как можно сделать наоборот?
    (нижеприведенные действия и код написал, - может кому-то пригодится и такой вариант)

    По пунктам:

    1. создал 2 формы.

    2. выбрал в "мастере"  источник данных (база данных  Inventory) , в котором 2 таблицы:  

                  родительская - "dbo.Подразделения": 1 поле - ID;  2 поле - Наименование  (Подр)

                  дочерняя - "dbo.РабМесто":  1 поле - ID;  2 поле - ПодразделениеID  3 поле - Наименование    (РабМеста)

    связь :     [Подразделения].[ID] = [РабМесто].[ПодразделениеID]

    3. Перетащил на Form1 -  dbo.Подразделения, на Form2 - dbo.РабМесто (вложенную в dbo.Подразделения).   Все связи (DataSet,BindingSource,TableAdapter,TableAdapterManager,BindingNavigator) создались автоматически на обоих формах.

    4. (Form2)- создаем событие, которое возникает, когда происходит изменение позиции в DGV. 

      public delegate void MovedDelegate(string d);
      public event MovedDelegate MovedEvent;
    

     5. (Form2)-Создаем обработчик события PositionChanged для BindingSource который создаем во второй форме. В обработчике вызываем созданное в п.4 событие передаем в качестве параметра ключ по которому будем позиционировать вторую таблицу  

    private void рабМестоBindingSource_PositionChanged(object sender, EventArgs e)
        {
          MovedEvent(this.inventoryDataSet.Tables["рабМесто"].Rows[this.рабМестоBindingSource.Position]["ПодразделениеID"].ToString()); 
    
        }
    

     6. (Form1)- создаем кнопку и переименовываем ее в "f2".  Кликаем на нее и вместо кода

    private void button1_Click(object sender, EventArgs e)
        {
    
        }

    пишем вот этот код  (По клику запускает вторую форму и вешает обработчик на событие MovedEvent)

    private void f2_MovedEvent(object sender, EventArgs e)
        {
           using (Form2 f2 = new Form2())
           {
            f2.MovedEvent += new Form2.MovedDelegate(f2_MovedEvent);
            f2.ShowDialog();
           }
        }

    затем нужно зайти в свойства кнопки / события - и выбрать для события Click - "f2_MovedEvent"

    Все. Запускаем.

    в итоге у меня получился вот такой код:

    для - (Form1)

     public partial class Form1 : Form
      {
        public Form1()
        {
          InitializeComponent();
        }
    
        private void подразделенияBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
          this.Validate();
          this.подразделенияBindingSource.EndEdit();
          this.tableAdapterManager.UpdateAll(this.inventoryDataSet);
    
        }
    
        private void Form1_Load(object sender, EventArgs e)
        {
          // TODO: данная строка кода позволяет загрузить данные в таблицу "inventoryDataSet.Подразделения". При необходимости она может быть перемещена или удалена.
          this.подразделенияTableAdapter.Fill(this.inventoryDataSet.Подразделения);
    
        }
    
    
          //В создаем кнопку. По клику запускаем вторую форму и вешаем обработчик на событие MovedEvent
          private void f2_MovedEvent(object sender, EventArgs e)
          {
             using (Form2 f2 = new Form2())
             {
              f2.MovedEvent += new Form2.MovedDelegate(f2_MovedEvent);
              f2.ShowDialog();
             }
          }
    
    
          //отфильтровываем, если нужно не позиционировать, а именно показать только дочерние записи.
          void f2_MovedEvent(string d)
          {
            this.подразделенияBindingSource.Filter = "ID = '" + d + "'";
          }
      }

     

    для - (Form2)

     public partial class Form2 : Form
      {
        public Form2()
        {
          InitializeComponent();
        }
    
        private void рабМестоBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
          this.Validate();
          this.рабМестоBindingSource.EndEdit();
          this.tableAdapterManager.UpdateAll(this.inventoryDataSet);
    
        }
    
        private void Form2_Load(object sender, EventArgs e)
        {
          // TODO: данная строка кода позволяет загрузить данные в таблицу 
          //"inventoryDataSet.РабМесто". При необходимости она может быть перемещена или удалена.
          this.рабМестоTableAdapter.Fill(this.inventoryDataSet.РабМесто);
    
        }
    
    
        //событие, которое возникает, когда происходит изменение позиции в DGV.
        public delegate void MovedDelegate(string d);
        public event MovedDelegate MovedEvent;
    
    
        //обработчик события PositionChanged для BindingSource который создаем во второй форме. 
        //В обработчике вызываем созданное выше событие "MovedEvent" и передаем в качестве параметра ключ
        //по которому будем позиционировать вторую таблицу
        private void рабМестоBindingSource_PositionChanged(object sender, EventArgs e)
        {
          MovedEvent(this.inventoryDataSet.Tables["рабМесто"].Rows[this.рабМестоBindingSource.Position]["ПодразделениеID"].ToString()); 
    
        }
    
        
      }

     

     

     

    • Помечено в качестве ответа alexanko 18 июня 2010 г. 18:59
    18 июня 2010 г. 9:24

Все ответы

  • По-моему, только визуальными средствами это сделать не получится.
    17 июня 2010 г. 9:07
    Модератор
  • Если не трудно, приведите пример ( желательно с минимальным количеством   кода)  как это можно реализовать или хотя бы ссылку на такой пример.
    17 июня 2010 г. 9:38
  • Ну давай для начала попробуем.

    1. Создаешь 2 формы в проекте;

    2. Создаешь новый Data Source, выбираешь при создании DataSet  и тд.

    3. Кидаешь на каждую форму по таблице из DataSources, они автоматически создадут DataGridView BindingSource и еще чего-то...

    4. Во второй форме создаем событие, которое возникает, когда происходит изменение позиции в DGV.

     

        public delegate void MovedDelegate(string d);
        public event MovedDelegate MovedEvent;

     

    Это первый код который пишем руками, до этого все делали "визуальными средствами".

    5. Создаем обработчик события PositionChanged для BindingSource который создался во второй форме. В обработчике вызываем созданное в п.4 событие передаем в качестве параметра ключ по которому будем позиционировать вторую таблицу. В моем случае получилась вот такая контрукция:

     

    MovedEvent(this.expert8DataSet.Tables["reg1999"].Rows[this.reg1999BindingSource.Position]["dog"].ToString()); 

    6. В первой форме создаем кнопку. По клику запускаем вторую форму и вешаем обработчик на событие MovedEvent

          using (Form2 f2 = new Form2())
          {
            f2.MovedEvent += new Form2.MovedDelegate(f2_MovedEvent);
            f2.ShowDialog();
          }
    7. В обработчике устанавливаем положение BindingSource'а в зависимости от полученного а качестве параметра ключа.

        void f2_MovedEvent(string d)
        {
          this.reg1999BindingSource.Position = this.reg1999BindingSource.Find("dog", d);
        }

    Либо отфильтровываем, если нужно не позиционировать, а именно показать только дочерние записи.

        void f2_MovedEvent(string d)
        {
          this.reg1999BindingSource.Filter = "dog = '" + d + "'"; 
        }
    8. Запускаешь проект и убеждаешься, что изменение позиции в DataGrigView на второй форме ведет к изменению отображаемых данных на первой.

    Фух...

     

     

     

     

     

     

    • Предложено в качестве ответа ulcerModerator 18 июня 2010 г. 4:12
    • Помечено в качестве ответа I.Vorontsov 18 июня 2010 г. 6:02
    17 июня 2010 г. 13:12
    Модератор
  • Может я что то делаю не так, ... не выходит каменный цветок.

    Для 1 формы:

    public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

            }

     

            private void подразделенияBindingNavigatorSaveItem_Click(object sender, EventArgs e)

            {

                this.Validate();

                this.подразделенияBindingSource.EndEdit();

                this.tableAdapterManager.UpdateAll(this.inventoryDataSet);

            }

     

            private void Form1_Load(object sender, EventArgs e)

            {

                // TODO: данная строка кода позволяет загрузить данные в таблицу "inventoryDataSet.Подразделения". При необходимости она может быть перемещена или удалена.

                this.подразделенияTableAdapter.Fill(this.inventoryDataSet.Подразделения);

            }

     

            private void button1_Click(object sender, EventArgs e)

            {

                Form2 рабМесто = new Form2();

                рабМесто.Show();

            }

     

     

    Для 2 формы:

     

    public partial class Form2 : Form

        {

            public Form2()

            {

                InitializeComponent();

            }

     

            private void рабМестоBindingNavigatorSaveItem_Click(object sender, EventArgs e)

            {

                this.Validate();

                this.рабМестоBindingSource.EndEdit();

                this.tableAdapterManager.UpdateAll(this.inventoryDataSet);

            }

     

     

            private void Form2_Load(object sender, EventArgs e)

            {

                // TODO: данная строка кода позволяет загрузить данные в таблицу "inventoryDataSet.РабМесто". При необходимости она может быть перемещена или удалена.

                this.рабМестоTableAdapter.Fill(this.inventoryDataSet.РабМесто);

            }

     

            private void рабМестоDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)

            {

            }

     

            private void рабМестоBindingSource_CurrentChanged(object sender, EventArgs e)

            {

            }

     

                public delegate void MovedDelegate(string d);

                public event MovedDelegate MovedEvent;

     

                private void рабМестоBindingSource_PositionChanged(object sender, EventArgs e)

                {

                     MovedEvent(this.inventoryDataSet.Tables["рабМесто"].Rows[this.рабМестоBindingSource.Position]["ID"].ToString()); 

                }

     

                void f2_MovedEvent(string d)

                {

                    this.рабМестоBindingSource.Filter = "ID = '" + d + "'";

                }

     

     

                    private void f2_MovedEvent(object sender, EventArgs e)

                {

                    using (Form2 f2 = new Form2())

                    {

                        f2.MovedEvent += new Form2.MovedDelegate(f2_MovedEvent);

                        f2.ShowDialog();

                    }

                }

     

     

    17 июня 2010 г. 14:55
  •         private void button1_Click(object sender, EventArgs e)

            {

                Form2 рабМесто = new Form2();

                рабМесто.Show();

            }

    Это срабатывает? Форма открывается?

     

                    private void f2_MovedEvent(object sender, EventArgs e)

                {

                    using (Form2 f2 = new Form2())

                    {

                        f2.MovedEvent += new Form2.MovedDelegate(f2_MovedEvent);

                        f2.ShowDialog();

                    }

                }

    Зачем ты из второй формы снова запускаешь вторую?

     

    this.рабМестоBindingSource.Filter = "ID = '" + d + "'";

    У меня поле строковое, а у тебя ID скорее всего инт, так что кавычки одинарные не нужны. .Filter = "ID = " + d;

     

     

     

    17 июня 2010 г. 18:08
    Модератор
  • да, приведенный в предыдущем окне код, срабатывает.

    ...  вторую часть кода я убрал.

    17 июня 2010 г. 18:32
  • А чего тогда обработчик для MovedEvent не завел в первой форме?

    Да, и что именно не работает?

     

    17 июня 2010 г. 19:21
    Модератор
  • я уже подзапутался если честно. Можешь свой пример кода сбросить для 1 и 2-й формы?
    и если не сложно, опиши, какие у тебя поля в 1 и второй табл.


    17 июня 2010 г. 20:10
  • Не могу.

    Попытайся все-таки обозначить проблему.

    18 июня 2010 г. 4:12
    Модератор
  • Попытался сделать все заново. Получилось, работает, только наоборот :).
    Выбираются записи не в дочерней таблице, а в родительской. Как можно сделать наоборот?
    (нижеприведенные действия и код написал, - может кому-то пригодится и такой вариант)

    По пунктам:

    1. создал 2 формы.

    2. выбрал в "мастере"  источник данных (база данных  Inventory) , в котором 2 таблицы:  

                  родительская - "dbo.Подразделения": 1 поле - ID;  2 поле - Наименование  (Подр)

                  дочерняя - "dbo.РабМесто":  1 поле - ID;  2 поле - ПодразделениеID  3 поле - Наименование    (РабМеста)

    связь :     [Подразделения].[ID] = [РабМесто].[ПодразделениеID]

    3. Перетащил на Form1 -  dbo.Подразделения, на Form2 - dbo.РабМесто (вложенную в dbo.Подразделения).   Все связи (DataSet,BindingSource,TableAdapter,TableAdapterManager,BindingNavigator) создались автоматически на обоих формах.

    4. (Form2)- создаем событие, которое возникает, когда происходит изменение позиции в DGV. 

      public delegate void MovedDelegate(string d);
      public event MovedDelegate MovedEvent;
    

     5. (Form2)-Создаем обработчик события PositionChanged для BindingSource который создаем во второй форме. В обработчике вызываем созданное в п.4 событие передаем в качестве параметра ключ по которому будем позиционировать вторую таблицу  

    private void рабМестоBindingSource_PositionChanged(object sender, EventArgs e)
        {
          MovedEvent(this.inventoryDataSet.Tables["рабМесто"].Rows[this.рабМестоBindingSource.Position]["ПодразделениеID"].ToString()); 
    
        }
    

     6. (Form1)- создаем кнопку и переименовываем ее в "f2".  Кликаем на нее и вместо кода

    private void button1_Click(object sender, EventArgs e)
        {
    
        }

    пишем вот этот код  (По клику запускает вторую форму и вешает обработчик на событие MovedEvent)

    private void f2_MovedEvent(object sender, EventArgs e)
        {
           using (Form2 f2 = new Form2())
           {
            f2.MovedEvent += new Form2.MovedDelegate(f2_MovedEvent);
            f2.ShowDialog();
           }
        }

    затем нужно зайти в свойства кнопки / события - и выбрать для события Click - "f2_MovedEvent"

    Все. Запускаем.

    в итоге у меня получился вот такой код:

    для - (Form1)

     public partial class Form1 : Form
      {
        public Form1()
        {
          InitializeComponent();
        }
    
        private void подразделенияBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
          this.Validate();
          this.подразделенияBindingSource.EndEdit();
          this.tableAdapterManager.UpdateAll(this.inventoryDataSet);
    
        }
    
        private void Form1_Load(object sender, EventArgs e)
        {
          // TODO: данная строка кода позволяет загрузить данные в таблицу "inventoryDataSet.Подразделения". При необходимости она может быть перемещена или удалена.
          this.подразделенияTableAdapter.Fill(this.inventoryDataSet.Подразделения);
    
        }
    
    
          //В создаем кнопку. По клику запускаем вторую форму и вешаем обработчик на событие MovedEvent
          private void f2_MovedEvent(object sender, EventArgs e)
          {
             using (Form2 f2 = new Form2())
             {
              f2.MovedEvent += new Form2.MovedDelegate(f2_MovedEvent);
              f2.ShowDialog();
             }
          }
    
    
          //отфильтровываем, если нужно не позиционировать, а именно показать только дочерние записи.
          void f2_MovedEvent(string d)
          {
            this.подразделенияBindingSource.Filter = "ID = '" + d + "'";
          }
      }

     

    для - (Form2)

     public partial class Form2 : Form
      {
        public Form2()
        {
          InitializeComponent();
        }
    
        private void рабМестоBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
          this.Validate();
          this.рабМестоBindingSource.EndEdit();
          this.tableAdapterManager.UpdateAll(this.inventoryDataSet);
    
        }
    
        private void Form2_Load(object sender, EventArgs e)
        {
          // TODO: данная строка кода позволяет загрузить данные в таблицу 
          //"inventoryDataSet.РабМесто". При необходимости она может быть перемещена или удалена.
          this.рабМестоTableAdapter.Fill(this.inventoryDataSet.РабМесто);
    
        }
    
    
        //событие, которое возникает, когда происходит изменение позиции в DGV.
        public delegate void MovedDelegate(string d);
        public event MovedDelegate MovedEvent;
    
    
        //обработчик события PositionChanged для BindingSource который создаем во второй форме. 
        //В обработчике вызываем созданное выше событие "MovedEvent" и передаем в качестве параметра ключ
        //по которому будем позиционировать вторую таблицу
        private void рабМестоBindingSource_PositionChanged(object sender, EventArgs e)
        {
          MovedEvent(this.inventoryDataSet.Tables["рабМесто"].Rows[this.рабМестоBindingSource.Position]["ПодразделениеID"].ToString()); 
    
        }
    
        
      }

     

     

     

    • Помечено в качестве ответа alexanko 18 июня 2010 г. 18:59
    18 июня 2010 г. 9:24
  • в общем подсказали вот еще  какой вариант, чтобы сделать наоборот - при выборе строки из первой таблицы, чтобы она отображалась во второй.

    первые 3 пункта нужно сделать точно так же как описано чуть выше.

    затем,

    на Form1 создаем кнопку и далее в этой же форме прописываем код

     

        private void button1_Click(object sender, EventArgs e)
        {
          
          WindowsFormsApplication116.Program.ConnectionString = "Data Source=.;Initial Catalog=AC_Inventory;Integrated Security=True";
          
          WindowsFormsApplication116.Program.str2 = this.подразделенияDataGridView.Rows[this.подразделенияDataGridView.CurrentRow.Index].Cells[0].Value.ToString();
          WindowsFormsApplication116.Program.SQLstr = "SELECT ID, ПодразделениеID, Наименование, СотрудникID, СетевоеИмя, IPАдрес, Домен, ПО FROM dbo.РабМесто where (ПодразделениеID=" +
            WindowsFormsApplication116.Program.str2 + ")";
          
          
          Form2 РабМесто = new Form2();
          РабМесто.Show();
        }

    полный вид

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication116
    {
      public partial class Form1 : Form
      {
        public Form1()
        {
          InitializeComponent();
        }
    
        private void подразделенияBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
          this.Validate();
          this.подразделенияBindingSource.EndEdit();
          this.tableAdapterManager.UpdateAll(this.aC_InventoryDataSet);
    
        }
    
        private void Form1_Load(object sender, EventArgs e)
        {
          // TODO: данная строка кода позволяет загрузить данные в таблицу "aC_InventoryDataSet.Подразделения". При необходимости она может быть перемещена или удалена.
          this.подразделенияTableAdapter.Fill(this.aC_InventoryDataSet.Подразделения);
    
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
          // здесь строку подключения изменишь на свою, имя сервера там, имя базы и т.д
          WindowsFormsApplication116.Program.ConnectionString = "Data Source=.;Initial Catalog=AC_Inventory;Integrated Security=True";
          // здесь оставляешь как есть
          WindowsFormsApplication116.Program.str2 = this.подразделенияDataGridView.Rows[this.подразделенияDataGridView.CurrentRow.Index].Cells[0].Value.ToString();
          WindowsFormsApplication116.Program.SQLstr = "SELECT ID, ПодразделениеID, Наименование, СотрудникID, СетевоеИмя, IPАдрес, Домен, ПО FROM dbo.РабМесто where (ПодразделениеID=" +
            WindowsFormsApplication116.Program.str2 + ")";
          
          
          Form2 РабМесто = new Form2();
          РабМесто.Show();
        }
      }
    }
    

     

     

     

     

    в Form2 прописываем следующее

     

        using System.Data.SqlClient;
     private void Form2_Load(object sender, EventArgs e)
        {
          // TODO: данная строка кода позволяет загрузить данные в таблицу "aC_InventoryDataSet.РабМесто". При необходимости она может быть перемещена или удалена.
          //комментировать обязательно //this.рабМестоTableAdapter.Fill(this.aC_InventoryDataSet.РабМесто);
    
    
          // здесь строку подключения изменишь на свою, имя сервера там, имя базы и т.д
          WindowsFormsApplication116.Program.ConnectionString = "Data Source=LEPESTOK;Initial Catalog=AC_Inventory;Integrated Security=True";
          SqlDataAdapter dA = new SqlDataAdapter(WindowsFormsApplication116.Program.SQLstr, WindowsFormsApplication116.Program.ConnectionString);
          dA.Fill(this.aC_InventoryDataSet, "РабМесто");
          this.рабМестоDataGridView.DataSource = this.aC_InventoryDataSet.Tables["РабМесто"].DefaultView;
        }
    

     

     

     

    полный вид

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    
    namespace WindowsFormsApplication116
    {
      public partial class Form2 : Form
       {
        //SqlDataAdapter SqlDataAdapter;
        public Form2()
        {
          InitializeComponent();
        }
    
        private void рабМестоBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
          this.Validate();
          this.рабМестоBindingSource.EndEdit();
          this.tableAdapterManager.UpdateAll(this.aC_InventoryDataSet);
    
        }
    
        private void Form2_Load(object sender, EventArgs e)
        {
          // TODO: данная строка кода позволяет загрузить данные в таблицу "aC_InventoryDataSet.РабМесто". При необходимости она может быть перемещена или удалена.
          //this.рабМестоTableAdapter.Fill(this.aC_InventoryDataSet.РабМесто);
    
    
          // здесь строку подключения изменишь на свою, имя сервера там, имя базы и т.д
          WindowsFormsApplication116.Program.ConnectionString = "Data Source=LEPESTOK;Initial Catalog=AC_Inventory;Integrated Security=True";
          SqlDataAdapter dA = new SqlDataAdapter(WindowsFormsApplication116.Program.SQLstr, WindowsFormsApplication116.Program.ConnectionString);
          dA.Fill(this.aC_InventoryDataSet, "РабМесто");
          this.рабМестоDataGridView.DataSource = this.aC_InventoryDataSet.Tables["РабМесто"].DefaultView;
    
    
    
        }
    
        private void рабМестоBindingNavigator_RefreshItems(object sender, EventArgs e)
        {
    
        }
      }
    }
     

    в program.cs 

    прописываем следующее

      public static string ConnectionString;  // строка подключения

            public static string str2;                   // номер ИД

            public static string SQLstr;               // запрос выборки


    namespace WindowsFormsApplication116
    {
      static class Program
      {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        // [STAThread]
    
    
    
        public static string ConnectionString; // строка одключения
        public static string str2;          // номер ИД
        public static string SQLstr;        // запрос выборки
    
    
    
    
    
    
    
        static void Main()
        {
          Application.EnableVisualStyles();
          Application.SetCompatibleTextRenderingDefault(false);
          Application.Run(new Form1());
    
        }
    
        
      }
    }

     

     

     

     

     

    22 июня 2010 г. 19:57