У меня есть проблема, когда я не могу установить язык пользователя 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#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Кто может объяснить `foo, bar = foo[bar] = [1,2,3], 2`? (питон) [дубликат]
Anonymous » » в форуме Python - 0 Ответы
- 69 Просмотры
-
Последнее сообщение Anonymous
-