powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / постоянный InvalidOperationException при попытке установить источник данных для грида
2 сообщений из 2, страница 1 из 1
постоянный InvalidOperationException при попытке установить источник данных для грида
    #37984573
Rectangle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пытаюсь подключиться к базе данных и выполнить какой-либо запрос. Строка подключения.

Код: c#
1.
2.
3.
       string connstring = @"Data Source=ADMIN-PC\MSSQLSERVER2;
                              Initial Catalog=ShoppingMall;
                              Integrated Security=True";


Подключение к базе данных осуществляется в отдельном потоке. Вот объявленные переменные.

Код: c#
1.
2.
3.
4.
5.
6.
7.
string connection_string; //connection string
RadGridView rgv; //temporary grid view
SqlCommand cmd; //any command
private Thread DBConnectionThread; //thread for connection
public event EventHandler ConnectionComplete; //event for connection
SqlDataReader reader; //execute reader
string cmd_text; //query


По нажатию на одну кнопку начинается подключение к базе данных
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
md_text = "Select * from TServiceContract";
 
this.radWaitingBarElement1.Visibility = ElementVisibility.Visible;
this.radWaitingBarElement1.StartWaiting();
 
this.Connect();
this.ConnectionComplete += db_ConnectionComplete;
 
this.radLabelElement1.Text = "Connection to database established!";


Где метод Connect запускает поток подключения
Код: c#
1.
2.
3.
4.
5.
public void Connect()
        {
            DBConnectionThread = new Thread(new ThreadStart(this.EstablishConnection));
            DBConnectionThread.Start();
        }


Сама функция потока
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
private void EstablishConnection()
        {
            using (SqlConnection conn = new SqlConnection(connection_string))
            {
                using (cmd = conn.CreateCommand())
                {
                    cmd.CommandText = cmd_text;
                    try
                    {
                        Thread.Sleep(5000);//temporary waiting
                        conn.Open();
                    }
                    catch (Exception) { }
 
                    if (this.ConnectionComplete.Target is System.Windows.Forms.Control)
                    {
                        System.Windows.Forms.Control target = ConnectionComplete.Target as System.Windows.Forms.Control;
                        target.BeginInvoke(this.ConnectionComplete, new Object[] { });
                    }
                    else
                    {
                        this.ConnectionComplete(this, EventArgs.Empty);
                    }
 
                    reader = cmd.ExecuteReader();
                }
            }
        }


После того как произошло подключение к базе данных срабатывает событие завершения db_ConnectionComplete
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
private void db_ConnectionComplete(object sender, EventArgs e)
        {
 
            rgv = new RadGridView();
            rgv.Size = new Size(753, 427);
            rgv.Location = new Point(0, 54);
            rgv.AutoGenerateColumns = true;
            rgv.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
            rgv.DataSource = reader; //InvalidOperationException(HasRows,FieldCount,Depth threw this exception)
            this.Controls.Add(rgv);
 
            this.radLabelElement1.Text = "Data was loaded from database";
            this.radWaitingBarElement1.Visibility = ElementVisibility.Hidden;
        }


И в строке rgv.DataSource = reader вылетает исключение. Но при этом в момент когда выполнился cmd.ExecuteReader этот SqlDataReader не выбрасывал исключений и корректно отображал всё(то есть FieldCount и т.п.)
В чем проблема?
...
Рейтинг: 0 / 0
постоянный InvalidOperationException при попытке установить источник данных для грида
    #37984878
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ чем проблема?
В мозгах, грид не выполняет ни каких операций по получению данных из запроса, он работает с готовым набором данных

авторDataSource Возвращает или задает объект, из которого элемент управления с привязкой к данным получает свой список элементов данных.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / постоянный InvalidOperationException при попытке установить источник данных для грида
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]