【问题标题】:SQL Datatable error "Value cannot be null."SQL 数据表错误“值不能为空”。
【发布时间】:2011-12-08 21:50:40
【问题描述】:

我正在执行一个 sql 查询,我收到一个错误 值不能为空。 参数名称:dataTable

代码:

                strSQLHost = "select HostBase.AppName from HostBase where HostBase.appid=0" 
                Dim dtHost As DataTable
                Dim daHost As SqlDataAdapter = New SqlDataAdapter(strSQLHost, conn)
                daHost.Fill(dtHost)

错误发生在daHost.Fill(dtHost)
当我在 SQL 企业管理器中运行此查询时,我得到一个值“无”。这是一个有效值,而不是空值。

我该如何解决这个问题?

【问题讨论】:

    标签: asp.net sql datatable


    【解决方案1】:

    删除您声明中的最后一个'

    我认为它应该是这样的:

    strSQLHost = "select Host.AppName from HostBase where HostBase.appid=0"
    

    并在传入之前实例化您的 DataTable:

    Dim dtHost As DataTable = new DataTable()
    

    【讨论】:

    • 不会把剩下的部分变成评论吗?
    • lcarus,这是一个注释行。我确实删除了它,但没有运气
    • @JeffO OP 更新了他的问题。他在 appid=0 之后有一个',我认为他的意思是连接 dmRow("appid") 的输出或他最初编写的类似内容
    • Dim dtHost As DataTable = new DataTable() 是答案。非常感谢 lcarus !!!
    【解决方案2】:
    select Host.AppName from HostBase where HostBase.appid=0
    

    当您只引用一个表时,您似乎在混淆表名:HostBase。您不能在此查询中使用 table: Host 而不将其包含在某种联接中(即使它变成了笛卡尔积)这就是变化。

    select HostBase.AppName from HostBase where HostBase.appid=0
    

    暂停一下,看看字符串变量的确切值:strSQLHost

    【讨论】:

    • 对不起...这是我在原始帖子中的拼写错误
    猜你喜欢
    • 2015-11-07
    • 2014-01-30
    • 2017-12-16
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多