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

При добавлении в базу вместо кириллицы - "?"

30.05.2013, 19:24. Просмотров 3876. Ответов 6
Метки нет (Все метки)

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

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

1) Соединение с базой
C#
1
2
SqlCоnnectiоn cn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=#Здесь путь#Database1.mdf;Integrated Security=True;");
SqlCommand cmd = new SqlCommand();
2) Нажатие на кнопку
C#
1
2
3
4
5
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) values (N'" + NameBox.Text"')";
не помогло
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2013, 19:24
Ответы с готовыми решениями:

Знаки "?" вместо кириллицы, при получении ответа на sql запрос к mdf базе данных
помогите, уже голову сломал :wall: есть локальная база созданная в ms sql server в формате mdf...

Вместо кириллицы выводятся с БД "?"
При выводе данных с БД выводятся вопросительные знаки. Насколько я понимаю это из-за того что нета...

Ошибка "Specified cast is not valid" при добавлении записи ???
Проблема вот какая: При добавлении записи в таблицу возникает ошибка, вида 'An unhandled exception...

Ошибка при добавлении данных "Incorrect syntax near '?'"
Уже всю голову сломал, не могу понять где ошибка using (SqlCommand comm =...

Как проверить строку в "поле" на уникальность при добавлении строки в БД?
Доброго времени суток! Знает ли кто-нибудь, как правильно составить команду SQL, которая бы...

6
Goal
Футболист
516 / 418 / 140
Регистрация: 31.10.2011
Сообщений: 1,008
Завершенные тесты: 2
30.05.2013, 20:35 2
у тебя тип столбца char? сделай так. как написано ниже, измени тип столбца на рекомендуемый от меня)
oracle - nvarchar
mssql - nchar
0
CDataB
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 3
30.05.2013, 20:45  [ТС] 3
Goal, спасибо за отклик!
Был nvarchar(max), поставил nchar(10), все равно вопросики.
0
Goal
Футболист
516 / 418 / 140
Регистрация: 31.10.2011
Сообщений: 1,008
Завершенные тесты: 2
30.05.2013, 21:44 4
ну тогда попробуй вот так
nvarchar мог бы и оставить

C#
1
2
3
cmd.CommandText = "INSERT INTO Customers (Name) values (@Name)";
cmd.Parameters.AddWithValue("@Name", NameBox.Text);
cmd.ExecuteNonQuery();
1
CDataB
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 3
30.05.2013, 22:01  [ТС] 5
Вы очень крутой, спасибо!

Теперь во всем рунете будет нормальный ответ на популярную, как мне кажется, проблему, а то я обыскался
0
cancoder
3 / 3 / 3
Регистрация: 04.01.2016
Сообщений: 98
05.10.2016, 20:15 6
у меня наоборот проблема.
создал я базу данных в mysql server.
в самой mysql русские буквы читаются.
но если делаю запрос через c# то корявые символы показываются. не вопросы а каракули.
как это исправить? я пытаюсь в строке подключения указывать кодировку, но не помогает.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;
using static System.Console;
 
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = @"server=localhost;database=forum;uid=root;password=1234;charset=utf8";
            DataTable dataTable = new DataTable();
            MySqlConnection connection = new MySqlConnection(connectionString);
            MySqlCommand comand = new MySqlCommand("SELECT * FROM users", connection);
                connection.Open();
                WriteLine("подключение открыто");
                comand.ExecuteNonQuery();
                MySqlDataAdapter dataAdapter = new MySqlDataAdapter(comand);
                
                dataAdapter.Fill(dataTable);
            string a = dataTable.Rows[0][1].ToString();
            Write(a);
            ReadKey();
        }
    }
}
0
kill-s
0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 18
11.10.2016, 08:57 7
C#
1
EditInTable(dataGridView1, "UPDATE cStudents SET Firstname =N'" + textBox6.Text.ToString()+ "'"  + "WHERE StudentId = '"+ dataGridView1.CurrentRow.Cells[0].Value.ToString() + "'");
Мне помогло избавиться от ???
0
11.10.2016, 08:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2016, 08:57

При добавлении записи в БД происходит ошибка "violation of PRIMARY KEY constraint)"
Ребята, тут такая неразбериха, я по идее правильные ввожу данные, но почему то выскакивает данная...

Ошибка при добавлении в таблицу: Неправильный синтаксис около конструкции "nvarchar"
Здравствуйте еще раз. У меня возникла новая проблема, теперь уже при добавлении из формы записи в...

Ошибка при добавлении данных "Неправильный синтаксис около конструкции <Имя фирмы>"
WorkClasses.WorkClass.ExecutRequest(&quot;Insert into TB_Processor Values (,,,,,,,) (&quot; +...


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

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

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