У меня есть проблема, когда я не могу установить язык пользователя DB, который в настоящее время активен в сценарии интеграционного тестирования сервера .net 4.8, который чувствителен к языку пользователей (который, очевидно, не должен быть , но это устаревший код для вас) из -за проблем с форматом даты. Язык от US_ENGISH до Deutsch (немецкий) в той же транзакции SQL: < /p>
SET LANGUAGE Deutsch;
< /code>
Из-за этого я попытался обойти это, установив язык по умолчанию пользователя, а затем инициировав транзакцию: < /p>
USE [master];
ALTER LOGIN [myuser] WITH DEFAULT_LANGUAGE=[Deutsch];
< /code>
Это успешно меняет язык пользователя, но вызывает следующие ошибки: < /p>
02/18/2025 12:53:09,Logon,Unknown,Error: 18456 Severity: 14 State: 28.
02/18/2025 12:53:09,Logon,Unknown,Login failed for user 'myuser'. Reason: Failed to determine the language and date format while revalidating the login on the connection. [CLIENT: ]
02/18/2025 12:53:09,spid71,Unknown,Error: 18056 Severity: 20 State: 28.
02/18/2025 12:53:09,spid71,Unknown,The client was unable to reuse a session with SPID 71 which had been reset for connection pooling. The failure ID is 28. This error may have been caused by an earlier operation failing. Check the error logs for failed operations immediately before this error message.
< /code>
Это изменение осуществляется программатически как SO: < /p>
public void ChangeLanguage()
{
ExecuteSql($"USE [master]; ALTER LOGIN [myuser] WITH DEFAULT_LANGUAGE=[Deutsch]");
}
private void ExecuteSql(string sql)
{
string cs = $@"Data Source={sqlServerName};Integrated Security=True;Pooling=False";
using (SqlConnection c = new SqlConnection(cs))
{
try
{
using (SqlCommand cmd = c.CreateCommand())
{
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
c.Open();
cmd.ExecuteNonQuery();
}
}
finally
{
c.Close();
}
}
}
< /code>
Строка подключения, используемая для транзакций после этого, построена так: < /p>
connectionString = $"server={sqlServerName};database={testDbName};user id={testDbUsername};password={testDbPassword};";
< /code>
Есть ли «короткий и сладкий» надежный способ изменить такой язык пользователей? Язык ", возможно, не сработал.
Подробнее здесь: https://stackoverflow.com/questions/794 ... pplication
Как изменить язык пользователя SQL-Server в приложении .NET Framework, когда «SET Language Foo» не удается? ⇐ C#
Место общения программистов C#
1739890290
Anonymous
У меня есть проблема, когда я не могу установить язык пользователя DB, который в настоящее время активен в сценарии интеграционного тестирования сервера .net 4.8, который чувствителен к языку пользователей (который, очевидно, не должен быть , но это устаревший код для вас) из -за проблем с форматом даты. Язык от US_ENGISH до Deutsch (немецкий) в той же транзакции SQL: < /p>
SET LANGUAGE Deutsch;
< /code>
Из-за этого я попытался обойти это, установив язык по умолчанию пользователя, а затем инициировав транзакцию: < /p>
USE [master];
ALTER LOGIN [myuser] WITH DEFAULT_LANGUAGE=[Deutsch];
< /code>
Это успешно меняет язык пользователя, но вызывает следующие ошибки: < /p>
02/18/2025 12:53:09,Logon,Unknown,Error: 18456 Severity: 14 State: 28.
02/18/2025 12:53:09,Logon,Unknown,Login failed for user 'myuser'. Reason: Failed to determine the language and date format while revalidating the login on the connection. [CLIENT: ]
02/18/2025 12:53:09,spid71,Unknown,Error: 18056 Severity: 20 State: 28.
02/18/2025 12:53:09,spid71,Unknown,The client was unable to reuse a session with SPID 71 which had been reset for connection pooling. The failure ID is 28. This error may have been caused by an earlier operation failing. Check the error logs for failed operations immediately before this error message.
< /code>
Это изменение осуществляется программатически как SO: < /p>
public void ChangeLanguage()
{
ExecuteSql($"USE [master]; ALTER LOGIN [myuser] WITH DEFAULT_LANGUAGE=[Deutsch]");
}
private void ExecuteSql(string sql)
{
string cs = $@"Data Source={sqlServerName};Integrated Security=True;Pooling=False";
using (SqlConnection c = new SqlConnection(cs))
{
try
{
using (SqlCommand cmd = c.CreateCommand())
{
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
c.Open();
cmd.ExecuteNonQuery();
}
}
finally
{
c.Close();
}
}
}
< /code>
Строка подключения, используемая для транзакций после этого, построена так: < /p>
connectionString = $"server={sqlServerName};database={testDbName};user id={testDbUsername};password={testDbPassword};";
< /code>
Есть ли «короткий и сладкий» надежный способ изменить такой язык пользователей? Язык ", возможно, не сработал.
Подробнее здесь: [url]https://stackoverflow.com/questions/79448623/how-to-change-the-language-of-a-sql-server-user-in-a-net-framework-application[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия