Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
4 / 5 / 2
Регистрация: 17.09.2021
Сообщений: 407

Ситуация с русской кодировкой

29.09.2025, 05:44. Показов 938. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста, почему-то datagridview, вместо слов по русский, показывает вопросительные знаки, где нужно исправить в коде, чтоб нейтрализовать проблему. Заранее буду благодарен


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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
 
namespace PHONEBOOK6
{
    public partial class PhoneBook : Form
    {
        SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='C:\Users\User\source\repos\PHONEBOOK6\phonebook9.mdf';Integrated Security=True;Connect Timeout=30;");
        public PhoneBook()
        {
            InitializeComponent();
        }
 
        private void PhoneBook_Load(object sender, EventArgs e)
        {
            this.ActiveControl = textBox1;
            textBox1.Focus();
        }
 
        private void textBox5_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
 
        private void textBox4_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void textBox6_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void label6_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label4_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label9_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label6_Click_1(object sender, EventArgs e)
        {
 
        }
 
        private void label7_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            textBox4.Clear();
            textBox5.Clear();
            textBox6.Clear();
            comboBox1.SelectedIndex = -1;
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
 
        }
 
        private void panel4_Paint(object sender, PaintEventArgs e)
        {
 
        }
 
        private void button9_Click(object sender, EventArgs e)
        {
            con.Open();
            SqlCommand cmd = new SqlCommand(@"
                INSERT INTO PhoneBook
                (FirstName, LastName,Mobile,Email,Category) 
                VALUES ('"+textBox1.Text+"','"+textBox4.Text+ "','"+textBox5.Text+ "','"+textBox6.Text+ "','"+comboBox1.Text+"')",con);
            cmd.ExecuteNonQuery();
            con.Close();
            MessageBox.Show("Успешно сохранено");
                Display();
        
        }
        void Display()
        {
            SqlDataAdapter sda = new SqlDataAdapter("Select * from PhoneBook",con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dataGridView1.Rows.Clear();
            foreach (DataRow item in dt.Rows)
            {
                int n = dataGridView1.Rows.Add();
                dataGridView1.Rows[n].Cells[0].Value = item[0].ToString();
                dataGridView1.Rows[n].Cells[1].Value = item[1].ToString();
                dataGridView1.Rows[n].Cells[2].Value = item[2].ToString();
                dataGridView1.Rows[n].Cells[3].Value = item[3].ToString();
                dataGridView1.Rows[n].Cells[4].Value = item[4].ToString();
            }
        }
 
        private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
        {
            textBox1.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
            textBox4.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
            textBox5.Text = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
            textBox6.Text = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
            comboBox1.Text = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();
        }
 
        private void button10_Click(object sender, EventArgs e)
        {
            con.Open();
            SqlCommand cmd = new SqlCommand(@"DELETE FROM PhoneBook
WHERE (Mobile = '"+textBox5.Text+"')", con);
            cmd.ExecuteNonQuery();
            con.Close();
            MessageBox.Show("Успешно Удаленно");
            Display();
        }
 
        private void button6_Click(object sender, EventArgs e)
        {
            con.Open();
            SqlCommand cmd = new SqlCommand(@"UPDATE PhoneBook 
SET FirstName='"+textBox1.Text+"',LastName='"+textBox4.Text+"',Mobile='" + textBox5.Text + "',Email='" + textBox6.Text + "',Category='" + comboBox1.Text + "'WHERE(Mobile='"+textBox5.Text+"')", con);
            cmd.ExecuteNonQuery();
            con.Close();
            MessageBox.Show("Успешно изменено");
            Display();
        }
 
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void textBox9_TextChanged(object sender, EventArgs e)
        {
            SqlDataAdapter sda = new SqlDataAdapter("Select * from PhoneBook Where (Mobile like '"+textBox9.Text+ "%') or (FirstName like '"+textBox9.Text+ "%') or (LastName like '"+textBox9.Text+"%')", con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dataGridView1.Rows.Clear();
            foreach (DataRow item in dt.Rows)
            {
                int n = dataGridView1.Rows.Add();
                dataGridView1.Rows[n].Cells[0].Value = item[0].ToString();
                dataGridView1.Rows[n].Cells[1].Value = item[1].ToString();
                dataGridView1.Rows[n].Cells[2].Value = item[2].ToString();
                dataGridView1.Rows[n].Cells[3].Value = item[3].ToString();
                dataGridView1.Rows[n].Cells[4].Value = item[4].ToString();
            }
        }
    }
}
Миниатюры
Ситуация с русской кодировкой  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.09.2025, 05:44
Ответы с готовыми решениями:

Проблема с русской кодировкой на буржуйском IIS сервере.
Я разместил свой ASP сайт на амереканском бесплантном сервере. Там я сделал телефонный справочник...

IIS7 на русской Висте: снова надо решать вопрос с кодировкой сообщений ASP
Кто знает как это прочитать? Îøèáêà êîìïèëÿöèè Microsoft VBScript<FONT face="Times New Roman"...

Проблема с кодировкой русской строки в алгоритме LZW
Здравствуйте, помогите, пожалуйста, исправить вот проблему с кодированием строки, содержащей...

7
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
29.09.2025, 06:18
В БД тип данных varchar или nvarchar?
0
4 / 5 / 2
Регистрация: 17.09.2021
Сообщений: 407
29.09.2025, 08:38  [ТС]
Wolfdp, nvarchar
0
2288 / 1604 / 400
Регистрация: 26.06.2017
Сообщений: 4,757
Записей в блоге: 1
29.09.2025, 09:22
C#
1
2
3
INSERT INTO PhoneBook 
                (FirstName, LastName,Mobile,Email,Category) 
                VALUES (N'"+textBox1.Text+"',N'"+textBox4.Text+ "',N'"+textBox5.Text+ "',N'"+textBox6.Text+ "',N'"+comboBox1.Text+"')",con);
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,590
Записей в блоге: 4
29.09.2025, 09:24
Цитата Сообщение от Dmitry0-01 Посмотреть сообщение
C#
1
VALUES ('"+textBox1.Text+"','"+textBox4.Text+ "','"+textBox5.Text+ "','"+textBox6.Text+ "','"+comboBox1.Text+"')",con);
Жесть... Изучайте - Параметризация запросов.
1
91 / 65 / 18
Регистрация: 09.12.2015
Сообщений: 211
29.09.2025, 13:24
WinForms?
Посмотрите в настройках винды язык для не юникодных программ.
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,590
Записей в блоге: 4
29.09.2025, 13:38
Цитата Сообщение от BlackEric Посмотреть сообщение
Посмотрите в настройках винды язык для не юникодных программ.
Это не в Windows проблема, а в хранении данных на SQL Server:
Цитата Сообщение от Wolfdp Посмотреть сообщение
В БД тип данных varchar или nvarchar?
Цитата Сообщение от Dmitry0-01 Посмотреть сообщение
Wolfdp, nvarchar
Первый тип хранит ANSI, второй Unicode. Чтобы записать Unicode в nvarchar нужно использовать N'какой-то текст', вот и все дела. Или правильно использовать параметры
C#
1
2
3
4
5
6
7
8
9
SqlParameter parameterEOName = new SqlParameter
{
    ParameterName = "@eoName",
    Value = itemToAdd.EObjectName,
    SqlDbType = SqlDbType.NVarChar, // Вот строковый тип Unicode
    Size = 200,
    Direction = ParameterDirection.Input
};
sqlCommand.Parameters.Add(parameterEOName);
1
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
29.09.2025, 19:20
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Или правильно использовать параметры
строго говоря избавляет от кучи проблем, т.к. кроме кодировки ещё могут вылезти проблемы форматирования тех же дат.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.09.2025, 19:20
Помогаю со студенческими работами здесь

Фильтрация символов при вводе. Ввод с русской раскладкой.
Мне нужно ввести значение double в поле формы. Я настроил фильтрацию чтобы принимались только цифры...

Синтез русской речи
пишу программу где нужен синтез речи. на английском языке работает без проблем, но мне нужна...

Проблемы с русской буквой "Ж"
Есть скрипт, у которого в параметре передается буква латинского или русского алфавита, типа...

При русской переменной Like реагирует на ДЛИНУ, а не на содержание
Вот такая беда. Все работает нормально. <%Response.CharSet = 'windows-1251' Session.Codepage =...

Подсчитать число появлений в файле каждой строчной русской буквы
1)Дан текстовый файл.Подсчитать число появлений в нем каждой строчной русской буквы и создать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru