SQL Server:插入获取用户代理

时间:2014-09-29 16:38:25

标签: c# asp.net sql-server

我正在尝试在SQL Server表中执行insert以便在登录管理面板时进行审核。我想知道他们正在使用什么设备。我该怎么做?

这是我到目前为止所做的并且它不起作用它给了我一个错误,声明已被终止。

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();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

  

System.Data.dll中出现“System.Data.SqlClient.SqlException”类型的异常但未在用户代码中处理附加信息:字符串或二进制数据将被截断。声明已经终止。

这意味着您尝试插入的数据对于一个或多个列来说太大了。

你必须增加任何列太小的大小(我怀疑它是你的设备列,但除非我们看到你的表结构和测试数据,否则我们无法判断)