【问题标题】:vb error: Value of type 'String' cannot be converted to 'System.Data.SqlClient.SqlCommand'vb 错误:“String”类型的值无法转换为“System.Data.SqlClient.SqlCommand”
【发布时间】:2011-04-11 21:31:08
【问题描述】:

我是一个新手 VB 程序员,我确信这个解决方案很简单,但是,当我尝试在 SQL Server 中显示我的一个存储过程的结果时,我遇到了上述错误,它不需要任何参数。我该如何解决这个问题?

我的代码摘录:

Dim SQLCmd as SQLCommand = new SQLCommand()
SQLCmd.CommandText = "Exec AllTableCount" 
SQLCmd.CommandType = CommandType.StoredProcedure 
SQLCmd.Connection = GlobalFunctions.GlobalF.GetDevSQLServerStoredProcedure(SQLCmd.CommandType)             
SQLCmd.ExecuteNonQuery()
MsgBox(SQLCmd.ExecuteNonQuery)

GetDevSQLServerStoredProcedure 在不同的文件中定义为:

Public Shared Function GetDevSQLServerStoredProcedure(ByVal SQL As String)
   Dim DBConn As SQLConnection
   Dim DBCommand As SQLDataAdapter
   Dim DSPageData As New System.Data.DataSet
   DBConn = New SQLConnection(ConfigurationSettings.AppSettings("AMDMetricsDevConnectionString"))
   DBCommand = New SQLDataAdapter(SQL) 'This is the line it errors on'
   DBCommand.Fill(DSPageData, "Exceptions")
   Return DSPageData
End Function

我可以在服务器资源管理器中看到来自 VS 2008 的这个 SP。所以问题似乎是我不知道如何将数据适配器连接到 SP。只是一个字符串查询。

【问题讨论】:

  • 如果您的 StoredProcedure 被称为 AllTableCount,您应该将 SqlCommand 的 CommandText 设置为 "AllTableCount"
  • 谢谢,我试过了,但现在它在同一行出错并说:BC30311:'String' 类型的值不能转换为'System.Data.SqlClient.SqlCommand'

标签: sql vb.net dataset connection-string


【解决方案1】:

命令文本应该只是 Tim 提到的存储过程的名称。

看起来您现在遇到的问题是您将 CommandType 传递给您的方法 GetDevSQLServerStoredProcedure 而不是字符串。

【讨论】:

  • 谢谢,但我现在看到的问题是这个新函数不是命名空间的一部分,即使我将它添加到命名空间。命名空间有头文件吗?我在此解决方案中找不到包含此命名空间定义的任何其他文件。 (我搜索了解决方案)。
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多