出现服务器错误这意味着什么?

sycxhyv7  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(503)

这个错误信息意味着我做错了什么?
“/”应用程序中存在服务器错误。
过程或函数“campaign\u processclick\u 4”需要参数“@useragent”,但未提供该参数。
描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误的详细信息以及错误在代码中的起源。
异常详细信息:system.data.sqlclient.sqlexception:过程或函数“campaign\u processclick\u 4”需要参数“@useragent”,但未提供该参数。
源错误:

Line 164:                End If
         Line 165:                cmdProcessClick.Parameters.Add(New SqlParameter("@Ip", 
         Data.SqlDbType.NVarChar, 15)).Value = Ip
         Line 166:              **cmdProcessClick.ExecuteNonQuery()**
         Line 167:                If cnn.State = Data.ConnectionState.Open Then
         Line 168:                cnn.Close()

这是函数

Using cmdProcessClick As New SqlCommand(spToUse, cnn)
            cmdProcessClick.CommandType = Data.CommandType.StoredProcedure
            cmdProcessClick.Parameters.Add(New SqlParameter("@CampaignId", 
         Data.SqlDbType.Int)).Value = CampaignId
            cmdProcessClick.Parameters.Add(New SqlParameter("@LinkId", 
         Data.SqlDbType.Int)).Value = LinkId
            cmdProcessClick.Parameters.Add(New SqlParameter("@SubId", 
         Data.SqlDbType.TinyInt)).Value = SubId
            cmdProcessClick.Parameters.Add(New SqlParameter("@UserAgent", Data.SqlDbType.Text)).Value = UserAgent

            If Trim(Len(Referrer)) > 0 Or Trim(Referrer) <> String.Empty Then
                cmdProcessClick.Parameters.Add(New SqlParameter("@Referrer", 
            Data.SqlDbType.NVarChar, 100)).Value = Referrer
            Else
                cmdProcessClick.Parameters.Add(New SqlParameter("@Referrer", 
             Data.SqlDbType.NVarChar, 100)).Value = DBNull.Value
            End If
            cmdProcessClick.Parameters.Add(New SqlParameter("@Ip", 
           Data.SqlDbType.NVarChar, 15)).Value = Ip
            cmdProcessClick.ExecuteNonQuery()
kognpnkq

kognpnkq1#

您的sql查询可能包含以下内容:

SomeField = @UserAgent

但是@useragent没有被添加为命令的参数。
你需要做一些类似于你正在做的事情 @Id 打电话之前 ExecuteNonQuery :

' optionally change the SqlDbType and length
' you must change MyUserAgentValue to an actual value 
cmdProcessClick.Parameters.Add(New SqlParameter("@UserAgent", Data.SqlDbType.NVarChar, 64)).Value = MyUserAgentValue

相关问题