Я пытаюсь сделать insert
в таблице SQL Server для аудита при входе в панель администратора. Я хочу узнать, какое устройство они используют. Как мне это сделать?SQL Server: Insert get user agent
Это то, что у меня есть до сих пор, и оно не работает, это дает мне ошибку, что утверждение было прервано.
string sUA = Request.UserAgent;
using (SqlConnection sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString))
{
using (SqlCommand sqlCmd1 = new SqlCommand { CommandText = "INSERT INTO dbo.audit ([user], [login], [pass], [timestamp], [device]) VALUES ('test', 'test', 'test', @time, @device)", Connection = sqlCon })
{
sqlCmd1.Parameters.AddWithValue("@time", DateTime.Now);
sqlCmd1.Parameters.AddWithValue("@device", sUA);
sqlCon.Open();
{
sqlCmd1.ExecuteNonQuery();
sqlCon.Close();
}
}
}
вы можете предоставить сообщение об ошибке, почему утверждение завершено? – Anton
Исключение типа «System.Data.SqlClient.SqlException» произошло в System.Data.dll, но не было обработано в коде пользователя Дополнительная информация: Строковые или двоичные данные будут усечены. Заявление было прервано. –
Проверьте длину столбца - то, что вы пытаетесь вставить, слишком длинное ** для столбца, в который вы пытаетесь вставить его! Мое предположение - столбец '[device]', который получает строку пользовательского агента - как долго он определяется в базе данных? Как долго строка пользовательского агента вы пытаетесь вставить в нее? –