VB错误:类型“字符串”的值不能转换为“System.Data.SqlClient.SqlCommand”

问题描述:

我是一个新手VB程序员,我相信这个解决方案是微不足道的,但是,我得到上述错误当我尝试显示在SQL Server中我存储的特效,并不需要任何参数的一个结果。我怎样才能解决这个问题?VB错误:类型“字符串”的值不能转换为“System.Data.SqlClient.SqlCommand”

我的代码摘录:

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 

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

+1

如果您的StoredProcedure的名字叫做'AllTableCount'你应该设置的SqlCommand的CommandText给' “AllTableCount”'。 – 2011-04-11 21:40:07

+0

感谢我试过,但现在它在同一行的错误,并说:BC30311:类型“字符串”的值不能转换为“System.Data.SqlClient.SqlCommand” – salvationishere 2011-04-11 23:32:12

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

它看起来像你现在遇到的问题是,你passinging将CommandType到你的方法,而不是GetDevSQLServerStoredProcedure的字符串。

+0

谢谢,但我看到现在的问题是,这个新功能不是名称空间的一部分,即使我将它添加到名称空间。名称空间是否有头文件?我无法在此解决方案中找到包含此名称空间定义的任何其他文件。 (我搜索了解决方案)。 – salvationishere 2011-04-12 01:09:49