Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2013, 20:57   #1
CDataB
Новичок
Джуниор
 
Регистрация: 30.05.2013
Сообщений: 2
По умолчанию При добавлении в базу из C# Windows.form вместо кириллицы - "?"

Текст из поля по нажатию на кнопку должен добавляться в базу

Важные моменты кода:

1) Соединение с базой
Код:
SqlCоnnectiоn cn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=#Здесь путь#Database1.mdf;Integrated Security=True;");
SqlCommand cmd = new SqlCommand();
2) Нажатие на кнопку
Код:
cn.Open();
cmd.Cоnnectiоn = cn;
cmd.CommandText = "INSERT INTO Customers (Name) values ('" + NameBox.Text"')";
cmd.ExecuteNonQuery();
cmd.Clone();
Но добавляются знаки вопроса - кодировка у базы ANSI, нужна какая-то другая, видимо (UTF-8, мб)

ВОПРОС: Как сделать так, чтобы добавлялась кириллица, а не "вопросы"

Варианты решений рассматривал:

1) Много встречал ответов, что помогает добавление в ConnectionString "charset=utf8;"
у меня не дает добавить, пишет, что не знает такого ключевого слова.
Видимо, это только для MySQL ConnectionString

2) cmd.CommandText = "SET NAMES 'utf8'";
не помогло

3) cmd.CommandText = "INSERT INTO Customers (Name) val ues (N'" + NameBox.Text"')";
не помогло

4) Тип столбца nvarchar(MAX), ставил другие (nchar, varchar), не помогло

Последний раз редактировалось CDataB; 30.05.2013 в 20:59.
CDataB вне форума Ответить с цитированием
Старый 30.05.2013, 21:29   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

параметрами передавать надо
и какой колайшн стоит у базы/поля ?
eval вне форума Ответить с цитированием
Старый 30.05.2013, 21:31   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
вместо кириллицы - "?"
Как проверял?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.05.2013, 21:50   #4
CDataB
Новичок
Джуниор
 
Регистрация: 30.05.2013
Сообщений: 2
По умолчанию

Каждый столбец выведен в ListBox формы

В самой таблице так же:

Цитата:
Сообщение от eval Посмотреть сообщение
параметрами передавать надо
и какой колайшн стоит у базы/поля ?
Не могли бы вы немного развернуть ваш ответ, что значит передавать параметрами?

Collation, честно говоря, тоже не знаю, как посмотреть

Извиняюсь, что вторым сообщением, прошу не наказывать, задумался

Update: Сделал через параметры:
cmd.CommandText = "INSERT INTO Customers (Name) values (@Name)";
cmd.Parameters.AddWithValue("@Name" , NameBox.Text);

Все получилось, спасибо за ваши знания!

Последний раз редактировалось Stilet; 30.05.2013 в 22:17.
CDataB вне форума Ответить с цитированием
Старый 30.05.2013, 22:17   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да, параметризация иногда весьма полезна.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При добавлении записи в БД пишем ошибку "поле не найдено" irina1410 БД в Delphi 16 25.06.2012 20:42
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? Unior Microsoft Office Excel 2 01.03.2009 02:42