【问题标题】:SqlClient.SqlCommand Bombing OutSqlClient.SqlCommand 轰炸
【发布时间】:2011-05-05 18:45:11
【问题描述】:

对 .NET 来说还是个新手,但对我来说这看起来不错。我不知道发生了什么事。我正在尝试将 1 个参数添加到 SqlCommand。它是 SQL Server 中的一个整数,我将一个整数传递给它。

它挂在Command.Parameters.Add(PolicyNo) 代码行上并踢出“由于内部错误而无法处理”。

我也试过了

Command.Parameters.AddWithValue("@PolicyNumber", PolicyNo)

但无济于事。它以相同的错误消息轰炸。代码如下:

Public Function GetPolicyObj(ByVal PolicyNo As Integer) As PolicyInfo Implements ILetterWriter.GetPolicyObj
    Dim SQLcon As New SqlClient.SqlConnection

    'Establish the connection
    SQLcon.ConnectionString = "Data Source=Hosed;Initial Catalog=MyCat;User ID=Goofy;Password=OpenSesame;"
    SQLcon.Open()

    Using Command As New SqlClient.SqlCommand("sp_GetPolicyInfo", SQLcon)
        Command.CommandType = CommandType.StoredProcedure
        Command.Parameters.Add(PolicyNo) 'Bombs on this line
        Command.Connection.Open()
        Dim reader As SqlClient.SqlDataReader = Command.ExecuteReader

有什么想法吗?

谢谢, 杰森

【问题讨论】:

    标签: asp.net sql ado.net


    【解决方案1】:

    您是否尝试过这样创建参数:

        Dim param as new SqlParameter()
        param.ParameterName = "ParamName"
        param.Value         = PolicyNo
        Command.Parameters.Add(param)
    

    【讨论】:

      【解决方案2】:

      不完全确定这是否应该是问题所在,但是您没有给参数对象命名,只传递会引发异常的值,您还必须给参数命名

      Command.Parameters.Add(new SqlParameter("PolicyNo",PolicyNo))
      

      【讨论】:

        【解决方案3】:

        Command.Parameters.Add() 将 SqlParameter 对象作为其参数。所以你不能只发送整数。

        http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx

        【讨论】:

          【解决方案4】:

          试试:

          Command.Parameters.AddWithValue("@PolicyNo", PolicyNo);
          

          【讨论】:

          • 是的,我试过了,但还是失败了(见代码上面的文字)。不过谢谢!
          • 报错还是一样?在您的代码中,您要添加一个整数,.Add 需要一个 SqlParameter... Command.Connection.Open() 也是多余的...除非它是 VB.NET 的东西
          【解决方案5】:

          也许您可以尝试显式输入参数:

          Command.Parameters.Add("@PolicyNumber", SqlDbType.Int)
          Command.Parameters("@PolicyNumber").Value = PolicyNo
          

          并确保您的参数名称和数据类型与存储过程中的内容相匹配。

          【讨论】:

            猜你喜欢
            • 2023-03-29
            • 2010-10-20
            • 1970-01-01
            • 1970-01-01
            • 2018-09-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-21
            相关资源
            最近更新 更多