SQL高手请进:sql能在access里执行,在代码曝“无效的null使用”,即查不出结果出来

ReynoldCQ 2015-04-22 11:22:26
SQL语句:
string queryStringRgt = @"SELECT TB_YWDA.ywda_SeqNO as 顺序号, TB_YWDAJ.ywdaj_DirName as 档号, TB_YWDAJ.ywdaj_KeepPeriod as 保管期限, TB_YWDAJ.ywdaj_Year as 年度, "
+ " TB_YWDA.ywda_Responsible as 责任者, TB_YWDA.ywda_Title as 题名, TB_YWDA.ywda_PageNO as 页号, TB_YWDAJ.ywdaj_Type as 档案类别, "
+ " TB_YWDA.ywda_PageSum as 页数, TB_YWDA.ywda_CreatedTime as 成文时间, TB_YWDA.ywda_ID, TB_YWDA.ywdaj_ID FROM TB_YWDA left join TB_YWDAJ on TB_YWDA.ywdaj_ID = TB_YWDAJ.ywdaj_ID where CInt(TB_YWDA.ywdaj_ID) = '" + selectedYwdajID + "'";


数据加载代码:
OleDbCommand SQLQuery = new OleDbCommand();
DataTable data = new DataTable();

this.skinDataGridViewRgt.DataSource = null;
SQLQuery.Connection = null;
OleDbDataAdapter dataAdapter = null;
this.skinDataGridViewRgt.Columns.Clear(); // <-- clear columns
//---------------------------------
SQLQuery.CommandText = sqlQueryString;
SQLQuery.Connection = dataBase;
dataAdapter = new OleDbDataAdapter(SQLQuery);
MessageBox.Show("hah");
dataAdapter.Fill(data); //问题出在这一行
skinDataGridViewRgt.DataSource = data;


之前另一个sql语句时,都没有错误,改了之后就出现问题了,谢谢大神帮忙解决一下。
...全文
331 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ReynoldCQ 2015-05-04
  • 打赏
  • 举报
回复
谢谢@Tiger_Zhao @ky_min 确实是因为有TB_YWDA.ywdaj_ID为空了所导致
Tiger_Zhao 2015-04-24
  • 打赏
  • 举报
回复
CInt(TB_YWDA.ywdaj_ID) 为什么要加 CInt?这个字段不应该本来就设计为Int类型吗?
如果TB_YWDA.ywdaj_ID有空值,加了 CInt() 就会报“无效的null使用”!
还在加载中灬 2015-04-24
  • 打赏
  • 举报
回复
不知道是不是不能正常处理NULL,看下ACCESS以下查询有没有结果
SELECT
	TB_YWDA.ywda_SeqNO as 顺序号
	, TB_YWDAJ.ywdaj_DirName as 档号
	, TB_YWDAJ.ywdaj_KeepPeriod as 保管期限
	, TB_YWDAJ.ywdaj_Year as 年度
	, TB_YWDA.ywda_Responsible as 责任者
	, TB_YWDA.ywda_Title as 题名
	, TB_YWDA.ywda_PageNO as 页号
	, TB_YWDAJ.ywdaj_Type as 档案类别
	, TB_YWDA.ywda_PageSum as 页数
	, TB_YWDA.ywda_CreatedTime as 成文时间
	, TB_YWDA.ywda_ID
	, TB_YWDA.ywdaj_ID
FROM TB_YWDA
	left join TB_YWDAJ on TB_YWDA.ywdaj_ID = TB_YWDAJ.ywdaj_ID
where CInt(TB_YWDA.ywdaj_ID) = 'selectedYwdajID'
	AND TB_YWDAJ.ywdaj_ID IS NULL
ReynoldCQ 2015-04-24
  • 打赏
  • 举报
回复
引用 3 楼 ky_min 的回复:
没有你的场景,你之前可以成功的语句也贴上来对比下~~
应用场景是: TB_YWDA:指业务档案 TB_YWDAJ:指业务档案卷 目地就是为了查出某个业务档案卷下的业务档案。 在表TB_YWDA中加了个TB_YWDAJ的ID作为外键。
ReynoldCQ 2015-04-24
  • 打赏
  • 举报
回复
引用 3 楼 ky_min 的回复:
没有你的场景,你之前可以成功的语句也贴上来对比下~~
@ky_min 谢谢你的回答。 我是在别人给的数据库上开发的,之前所有的items都在TB_YWDA这一个表里,就是一个简单的select语句,后来发现数据冗余了,就把TB_YWDA里面的一些字段删除了,搞成一个联合查找,结果就这样了。
还在加载中灬 2015-04-24
  • 打赏
  • 举报
回复
没有你的场景,你之前可以成功的语句也贴上来对比下~~
Tiger_Zhao 2015-04-23
  • 打赏
  • 举报
回复
ReynoldCQ 2015-04-23
  • 打赏
  • 举报
回复
引用 1 楼 Tiger_Zhao 的回复:
看这里
兄弟 还是不行啊…还是“无效的null使用”这个问题。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧