2011-10-16 35 views
0

我执行一个SQL查询,我得到一个错误值不能为空。 参数名:dataTable的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) 

当我运行在SQL企业管理器这个查询在daHost.Fill(dtHost)
出现的错误,我得到 '没有' 的值。这是一个有效的值,而不是空值。

我怎样才能解决这个问题?

回答

5

删除对帐单上的最后'

我想应该这样写:

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

并使其在之前实例化你的数据表:

Dim dtHost As DataTable = new DataTable() 
+1

岂不只是把该行的其余部分置入评论? – JeffO

+0

lcarus,这是一条评论专栏。我确实删除了它,但没有运气 – Frank

+0

@JeffO OP更新了他的问题。他之后的appid = 0'''正确的,我想他的意思来连接dmRow的输出(‘APPID’)或类似的东西,他写了最初 – Icarus

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

似乎就像您在仅引用一个表格时混合表名称一样:HostBase。在此查询,而不包括其在排序的一些连接(即使它变成了笛卡尔积)这是改变主持人:你不能使用表。

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

把休息,看到字符串变量的准确值:strSQLHost

+0

对不起......这是我在原始文章中的一个错字 – Frank