以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 加载数据出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66967)

--  作者:Liuxinyu
--  发布时间:2015/4/16 17:33:00
--  [求助] 加载数据出错
师兄:你好!

我建一个新项目,使用本地SQLserver2005数据库,加载外部表,使用加载条件使用中文不能加载数据,使用数字或英文可以加载数据,请给予指点。非常感谢!

Dim dt As DataTable  = CurrentTable.DataTable
dt.LoadFilter = "fieldname = \'中文\'"
dt.Load

结果数据表为空。图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2015/4/16 17:39:00
--  
错误提示是什么?
--  作者:狐狸爸爸
--  发布时间:2015/4/16 17:41:00
--  
可能你这一列的内容是固定长度,“中文”后面还有空格,所以条件不成立,无法加载,这样试试:

Dim dt As DataTable  = CurrentTable.DataTable
dt.LoadFilter = "fieldname Like \'%中文%\'"
dt.Load

设计表的时候,列的类型,尽量用nvarchar

--  作者:land089
--  发布时间:2015/4/16 17:55:00
--  
最近老大在论坛挺活跃的啊图片点击可在新窗口打开查看
--  作者:Liuxinyu
--  发布时间:2015/4/17 8:36:00
--  
狐爸你好!

在同一个项目中,引用局域网中SQLserver2008数据库的数据表,使用 dt.LoadFilter = "fieldname = \'中文\'" 语句可以筛选到对应的记录。但在引用本地的SQLserver2005数据库的数据表时,使用相同语句,无法获得对应记录。运行过程中没有错误提示,只是结果错误。


--  作者:Bin
--  发布时间:2015/4/17 8:37:00
--  
说明你没有拼接对.  使用文本应该是
"列名 = \'" & 变量 & "\'"   而不是  "列名= \'变量\'"

--  作者:狐狸爸爸
--  发布时间:2015/4/17 8:38:00
--  
如果确定表达式没错,应该是这个原因,正常的设置:


图片点击可在新窗口打开查看此主题相关图片如下:sql.png
图片点击可在新窗口打开查看


--  作者:Liuxinyu
--  发布时间:2015/4/17 9:09:00
--  
非常感谢!感谢狐爸的指点。

正如狐爸所说,SQLserver2005数据库的排序规则是 SQL_Latin1_General_CP1_CI_AS 。更改为 Chinese_PRC_CI_AS 后,问题解决了。

再次感谢!图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看