Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Oskolok_Lda
1 / 1 / 0
Регистрация: 29.01.2009
Сообщений: 55
1

SQLite Заполнение Combobox

25.04.2018, 11:56. Просмотров 1104. Ответов 69
Метки нет (Все метки)

День добрый!
Программа использовала MS SQL LocalDB. Хочу перевести на SQLite. Все компоненты установлены, подключение происходит. При выполнении SQL-запроса ошибка System.Data.SQLite.SQLiteException: "SQL logic error no such table: Otdel". Данная таблица существует, т.к. данный запрос корректно отрабатывается в DB Browser for SQLite. Заполнение делаю так
C#
1
2
3
4
5
6
7
            SQLiteConnection conn = new SQLiteConnection("Data Source=Akt_DB.db;Version=3;New=False;Compress=True;");
            SQLiteCommand command = new SQLiteCommand("select * from Otdel", conn);
            conn.Open();
            DbDataReader reader = command.ExecuteReader();
            while (reader.Read())
                OtdelComboBox.Items.Add((string)reader["Nazvanie"]);         //СтолбецТаблицы
            conn.Close();
В чем ошибка?

Заранее благодарен.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2018, 11:56
Ответы с готовыми решениями:

Заполнение ComboBox в соответствии со значением другого ComboBox
Значицца имеются, например, две таблички: Дисциплина (Математика, История,...

Заполнение DataGridView с SQLite БД
Здравствуйте! Есть sqlite БД. На мэйн форме есть DataGridview1, один текстбокс...

заполнение базы sqlite
есть фрагмент кода connection.Open(); SQLiteCommand comm = new...

Заполнить comboBox из таблицы SQLite
Подскажите как заполнить comboBox из значениями столбца таблицы SQLite. Без...

SQLite ComboBox.Text no curren row
Добрый день! Делаю запрос: SQLiteCommand select_protocols = new...

69
Usaga
Эксперт .NET
5032 / 3363 / 599
Регистрация: 21.01.2016
Сообщений: 13,227
Завершенные тесты: 2
04.05.2018, 13:55 61
Цитата Сообщение от Oskolok_Lda Посмотреть сообщение
Думал интуитивно получится. с использованием LocalDB - получилось, думал заменю на SQLite и все.
Тип СУБД тут вообще ни причём.

Посмотрите что будет в коллекции ПОСЛЕ циела.
0
Oskolok_Lda
1 / 1 / 0
Регистрация: 29.01.2009
Сообщений: 55
04.05.2018, 14:01  [ТС] 62
Цитата Сообщение от Usaga Посмотреть сообщение
Посмотрите что будет в коллекции ПОСЛЕ циела.
Что, простите? ))) Не путайте меня пожалуйста...
Я Вам вполне серьезно говорю, что мой первый проект на C#. С LocalDB, как я писал в начале, никаких сортировок делать не пришлось, все графическом режиме. Поэтому все связалось довольно легко, вывел на форму и засунул в репорт.
0
Tessio
68 / 76 / 42
Регистрация: 12.05.2015
Сообщений: 318
Завершенные тесты: 1
04.05.2018, 14:04 63
Цитата Сообщение от Oskolok_Lda Посмотреть сообщение
Что, простите? )))
Точку останова после цикла поставьте.

Добавлено через 1 минуту
наведите на переменную depts и посмотрите что там есть.
0
Usaga
04.05.2018, 14:05
  #64

Не по теме:

Tessio, перехватите эстафету? А то меня ТС уже притомил знатно.

0
Oskolok_Lda
1 / 1 / 0
Регистрация: 29.01.2009
Сообщений: 55
04.05.2018, 14:09  [ТС] 65
Цитата Сообщение от Tessio Посмотреть сообщение
наведите на переменную depts и посмотрите что там есть.
Даже остановка не происходит. Сразу форма загружается
0
Миниатюры
SQLite Заполнение Combobox  
Oskolok_Lda
1 / 1 / 0
Регистрация: 29.01.2009
Сообщений: 55
04.05.2018, 14:10  [ТС] 66
Цитата Сообщение от Usaga Посмотреть сообщение
Tessio, перехватите эстафету? А то меня ТС уже притомил знатно.
Спасибо за терпение, Извините..
0
Usaga
04.05.2018, 14:11
  #67

Не по теме:

Oskolok_Lda, не обижайтесь, но чтобы вам эффективно помочь, вы должны больше знать, чем сейчас.

0
Oskolok_Lda
1 / 1 / 0
Регистрация: 29.01.2009
Сообщений: 55
04.05.2018, 14:15  [ТС] 68
Цитата Сообщение от Usaga Посмотреть сообщение
Oskolok_Lda, не обижайтесь, но чтобы вам эффективно помочь, вы должны больше знать, чем сейчас.
Я не обижаюсь абсолютно. Вы правы. Повторюсь, там получилось, а тут нет...
0
Tessio
68 / 76 / 42
Регистрация: 12.05.2015
Сообщений: 318
Завершенные тесты: 1
04.05.2018, 17:53 69

Не по теме:

Цитата Сообщение от Usaga Посмотреть сообщение
Tessio, перехватите эстафету? А то меня ТС уже притомил знатно.
Тяжело, это надо объяснять чуть ли не с азов. Конечно, просто когда студия за тебя код пишет, но надо понимать почему так и зачем.


Цитата Сообщение от Oskolok_Lda Посмотреть сообщение
Даже остановка не происходит. Сразу форма загружается
Это очень странно что точка останова не срабатывает, я бы даже сказал такого быть не может. С другой стороны если в цикл заходит значит какие-то данные с базы приходят, хорошо бы увидеть какие. Тяжело гадать что там у вас происходит. Возможно даже это взаимосвязано, у вас случайно в рабочем коде нет try\catch?
0
Oskolok_Lda
1 / 1 / 0
Регистрация: 29.01.2009
Сообщений: 55
07.05.2018, 13:15  [ТС] 70
Цитата Сообщение от Tessio Посмотреть сообщение
Это очень странно что точка останова не срабатывает, я бы даже сказал такого быть не может. С другой стороны если в цикл заходит значит какие-то данные с базы приходят, хорошо бы увидеть какие. Тяжело гадать что там у вас происходит. Возможно даже это взаимосвязано, у вас случайно в рабочем коде нет try\catch?
нет. весь код на скрине

Добавлено через 3 часа 14 минут
Вот весь код Form1
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SQLite;
using System.Data.Common;
using static AKT.Form1;
 
namespace AKT
{
    public class Departement
    {
        public string Kod_Otdela { get; set; }
        public string Otdel { get; set; }
    }
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SQLiteConnection SQLite_conn = new SQLiteConnection("Data Source=Akt_DB.db;Version=3;New=False;Compress=True;");
 
        
        private void Form1_Load(object sender, EventArgs e)
        {
            SQLite_conn.Open();
            DataTable dt_Otdel = new DataTable();
            DataSet ds_Otdel = new DataSet();
            SQLiteDataAdapter da_Otdel = new SQLiteDataAdapter("select * from Otdel", SQLite_conn);
            SQLiteCommand command = new SQLiteCommand("SELECT * FROM Otdel", SQLite_conn);
            SQLiteDataReader reader = command.ExecuteReader();
            var depts = new List<Departement>();
            while (reader.Read())
            {
                depts.Add(new Departement
                {
                    Kod_Otdela = reader["Kod_Otdela"].ToString(),
                    Otdel = reader["Otdel"].ToString()
                });
            }
            //SQLiteDataAdapter da_People = new SQLiteDataAdapter("select * from People", SQLite_conn);
            da_Otdel.Fill(dt_Otdel);
            //da_People.Fill(ds_People, "People");
           
            OtdelComboBox.DataSource = depts;
            //FIOComboBox.DataSource = ds_People.Tables["People"];
            OtdelComboBox.DisplayMember = "Otdel";
            OtdelComboBox.ValueMember = "Kod_Otdela";
            //SQLite_conn.Close();
        }
        private void PrintButton_Click(object sender, EventArgs e)
        {
            if (Number_ZayTextBox.Text == String.Empty) //Проверка на пустоту текстбокса
            {
                MessageBox.Show("Не заполнено поле Номер заявки!!!");
                Number_ZayTextBox.Focus();
            }
            else
            {
                var Form2 = new Form2(OtdelComboBox.Text, FIOComboBox.Text, Number_ZayTextBox.Text, Inv_NumComboBox.Text, Ser_NumTextBox.Text, Name_TextBox.Text, WorkComboBox.Text, RashComboBox.Text, FKUComboBox.Text);
                Form2.Show(); // отображаем Form2
                              //Form2.ShowDialog();
                this.Hide(); // скрываем Form1 (this - текущая форма)                
            }
        }
 
        private void DBButton_Click(object sender, EventArgs e)
        {
            Form Form3 = new Form3();
            Form3.Show(); // отображаем Form3
            this.Hide(); // скрываем Form1 (this - текущая форма)
            //Form3.ShowDialog();
 
        }
 
        
        //while (Otdel_reader.Read())
 
 
        private void button1_Click(object sender, EventArgs e)
        {
            
 
        }
 
        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                Inv_NumComboBox.DataSource = null;
                Inv_NumComboBox.DisplayMember = "";
                Ser_NumTextBox.Tag = "";
                Ser_NumTextBox.ReadOnly = false;
                Ser_NumTextBox.Text = "";
                Name_TextBox.Tag = "";
                Name_TextBox.ReadOnly = false;
                Name_TextBox.Text = "";
            }
            if (checkBox1.Checked == false)
            {
                Inv_NumComboBox.DisplayMember = "Inventar";
                Ser_NumTextBox.Tag = "fKPrintersToOtdelBindingSource - Serial";
                Ser_NumTextBox.ReadOnly = true;
                Name_TextBox.Tag = "fKPrintersToOtdelBindingSource - Names";
                Name_TextBox.ReadOnly = true;
            }
        }
 
        private void OtdelComboBox_TextChanged(object sender, EventArgs e)
        {
            DataSet dt_People = new DataSet();
            var Kod_Otdela = this.OtdelComboBox.SelectedValue?.ToString();
            label11.Text = "Код отдела: " + $"{Kod_Otdela}";
            //            MessageBox.Show($"Dept selected: {Kod_Otdela}");
            SQLiteDataAdapter da_People = new SQLiteDataAdapter("select * from People where Kod_Otdela=" + Kod_Otdela, SQLite_conn);
            //da_People.Fill(dt_People);
            FIOComboBox.DataSource = dt_People;
 
        }
    }
}
0
07.05.2018, 13:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2018, 13:15

Заполнение ComboBox
Есть метод, который записывает данные с БД в textbox. Помогите переписать этот...

Заполнение combobox из БД
Заполняю combobox из БД с условием, но в cb пусто... private void...

Заполнение combobox из БД
Здравствуйте! Есть у меня несколько comboBox`ов, пусть &quot;марка авто&quot;, &quot;цвет&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
70
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru