以文本方式查看主题 - 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 -- 如果确定表达式没错,应该是这个原因,正常的设置: |
-- 作者:Liuxinyu -- 发布时间:2015/4/17 9:09:00 -- 非常感谢!感谢狐爸的指点。 正如狐爸所说,SQLserver2005数据库的排序规则是 SQL_Latin1_General_CP1_CI_AS 。更改为 Chinese_PRC_CI_AS 后,问题解决了。 再次感谢!
|