Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вместо русских букв ???????  [new]
AlejandroNonemo
Member

Откуда:
Сообщений: 8
Здравствуйте!

Возможно кто-то знает ответ, долго гуглил, но безуспешно.

Со своей формы на сервак MS SQL отправляю русский текст, введенный в полях, туда он приходит в виде вопросов.
Это на стороннем серваке я отлаживался. На нем параметры сортировки SQL_Latin1_General_CP1_CI_AS
На своем серваке все нормально. Параметры сортировки Cyrillic_General_CI_AS.

Читал, что возможно связано с параметрами сортировки. На стороннем серваке что-то не получается поменять эти параметры, может и нельзя? Это получается сделать для столбцов, но вместо букв все равно вопросы.
19 авг 12, 13:07    [13032851]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
iap
Member

Откуда: Москва
Сообщений: 47063
AlejandroNonemo,

причина, наверно не в какой-то там "сортировке",
а в том, что поле юникодное, а строки в него передаются неправильно.
Больше сказать ничего нельзя,
поскольку Вы не соизволили ясно сформулировать вопрос.
19 авг 12, 14:17    [13033034]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
AlejandroNonemo
Member

Откуда:
Сообщений: 8
Почему не понятно? Почему в базу данных приходят вопросы вместо русских букв и что сделать, чтобы все было правильно?
19 авг 12, 15:59    [13033345]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
ответ в цвет
Guest
AlejandroNonemo
Почему в базу данных приходят вопросы вместо русских букв
потому, что запрос на сохранение составлен не правильно
автор
и что сделать, чтобы все было правильно?

сделать запрос правильно
19 авг 12, 16:14    [13033378]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
iap
Member

Откуда: Москва
Сообщений: 47063
AlejandroNonemo,

Запрос по вставке строк в таблицу в студию!
И запрос на создание таблицы (CREATE TABLE) тоже.
Заодно версию сервера.
19 авг 12, 16:29    [13033418]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
AlejandroNonemo
Member

Откуда:
Сообщений: 8
Вот строка из программы с запросом:
string sendMessage = string.Format("INSERT INTO [Responses] ([Name] ,[SendingDate] ,[Text]) VALUES ('{0}', '{1}', '{2}')", TextBoxName.Text, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TextBoxMessage.Text);

Подскажите, пожалуйста, очень нужно.
19 авг 12, 16:31    [13033426]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
AlejandroNonemo
Member

Откуда:
Сообщений: 8
Таблицу сначала пробовал создавать вручную "Создать запроса", потом пытался как ниже, но результата нужного не получил.

USE [Alexx]
GO


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [CommentsNew](
[ID] [int] IDENTITY(1,1) NOT NULL ,
[Name] [nvarchar](50) COLLATE Cyrillic_General_CI_AS NOT NULL,
[SendingDate] [datetime] NOT NULL,
[Text] [nvarchar](max) COLLATE Cyrillic_General_CI_AS NOT NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO





СЕрвер MS SQL Server 2008
19 авг 12, 16:54    [13033479]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
iap
Member

Откуда: Москва
Сообщений: 47063
Так может быть?
string sendMessage = string.Format("INSERT INTO [Responses] ([Name] ,[SendingDate] ,[Text]) VALUES (N'{0}', '{1}', N'{2}')", TextBoxName.Text, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TextBoxMessage.Text);
Могли бы, кстати, запросы на T-SQL здесь писать.
Было бы логично, правда?
19 авг 12, 17:00    [13033485]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
invm
Member

Откуда: Москва
Сообщений: 9687
AlejandroNonemo,

Научитесь пользоваться параметрами.
Решите и свою текущую проблему и несколько других.
19 авг 12, 17:04    [13033496]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
iap
Member

Откуда: Москва
Сообщений: 47063
И, кстати говоря, формат даты 'yyyy-MM-dd HH:mm:ss' - неправильный,
ибо зависит от параметров логина или сессии.
Так что по-любому - это говнокод.
Сейчас заработает, а завтра-послезавтра глюкнет.
19 авг 12, 17:09    [13033509]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
iap
Member

Откуда: Москва
Сообщений: 47063
iap
И, кстати говоря, формат даты 'yyyy-MM-dd HH:mm:ss' - неправильный,
ибо зависит от параметров логина или сессии.
Так что по-любому - это говнокод.
Сейчас заработает, а завтра-послезавтра глюкнет.
Совет - замените пробел на заглавную английскую букву T
19 авг 12, 17:10    [13033513]     Ответить | Цитировать Сообщить модератору
 Re: Вместо русских букв ???????  [new]
AlejandroNonemo
Member

Откуда:
Сообщений: 8
iap, invm!

Большое спасибо, заработало, проблемы у меня с SQL, надо почитать.
19 авг 12, 20:05    [13033887]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить