Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C# и SQLite помогите

33K
07 марта 2008 года
vasiskasss
8 / / 07.03.2008
здравствуйте. У меня появилась проблема. Работаю в Visual Studio. Конекчюсь к базе SqLite:

SQLiteConnection sconn = new SQLiteConnection();
sconn.ConnectionString = "Data Source=myfirm1.s3db;";
sconn.Open();
SQLiteCommand cmd = new SQLiteCommand(sconn);
cmd.CommandText = "Select * from advertising_action";

SQLiteDataReader dtreader = cmd.ExecuteReader();
tab.Load(dtreader);
dtreader.Close();
sconn.Close();
textBox1.Text=tab.Rows[0][3].ToString();

Все нормально, только вот выводит в какой то квадратной кодировке - квадратиками. Что делать? Подскажите пожалуйста
5
07 марта 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: vasiskasss
здравствуйте. У меня появилась проблема. Работаю в Visual Studio. Конекчюсь к базе SqLite:

SQLiteConnection sconn = new SQLiteConnection();
sconn.ConnectionString = "Data Source=myfirm1.s3db;";
sconn.Open();
SQLiteCommand cmd = new SQLiteCommand(sconn);
cmd.CommandText = "Select * from advertising_action";

SQLiteDataReader dtreader = cmd.ExecuteReader();
tab.Load(dtreader);
dtreader.Close();
sconn.Close();
textBox1.Text=tab.Rows[0][3].ToString();

Все нормально, только вот выводит в какой то квадратной кодировке - квадратиками. Что делать? Подскажите пожалуйста


Код несколько неверный.
Во первых, что такое tab?
Во-вторых, в запросе лучше явно указывать, какие столбцы требуются, а в датаридере ссылаться на них по имени, а не по индексу.

Код:
using(SQLiteConnection con = new SQLiteConnection()) {
    con.ConnectionString = = "Data Source=myfirm1.s3db;";
    con.Open();
    using(SQLiteCommand cmd = new SQLiteCommand(con)) {
        cmd.CommandText = "Select id, title, comment from advertising_action";
        using(SQLiteDataReader reader = cmd.ExecuteReader()) {
            if(reader.HasRows) {
                while(reader.Read()) {
                    int id = (int) reader["id"];
                    string title = reader["title"].ToString();
                    string comment = reader["comment"].ToString();
                    ... // тут, например, отображаем строку на форме
                        //или пихаем ее в коллекцию
                }
            } else {
                MessageBox.Show("No data recieved.");
            }
        }
    }
}


По поводу кодировки. Недостаточно информации о том, как хранятся строки в БД и в какой кодировке. (с SQLite не знаком).
В принципе, каждую строку можно перекодировать при чтении/записи в БД.
33K
08 марта 2008 года
vasiskasss
8 / / 07.03.2008
Цитата: hardcase


По поводу кодировки. Недостаточно информации о том, как хранятся строки в БД и в какой кодировке. (с SQLite не знаком).
В принципе, каждую строку можно перекодировать при чтении/записи в БД.



Спасибо за более корректный код. В базе данных код хранится в кодировке 1251, я так понимаю, что мне необходимо перекодировать в UTF8 или UTF16. Был бы Вам благодарен, если бы примерно показали, как при чтении/записи перекодировать строку.

65K
13 декабря 2010 года
en-k
2 / / 13.12.2010
очень актуальная тема.
select из БД SQLite возвращает не кирилические символы.
Подскажите как получить кириллицу?
34K
15 июня 2011 года
shadowmaster63
93 / / 16.12.2009
Сори за некропостинг :)
Используйте кодировку для базы UTF8 и будет вам счастье :)
ну а по теме можно попробовать
StreamReader(stream, Encoding.Default)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог