以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQL相关 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51895) |
-- 作者:石四 -- 发布时间:2014/6/5 11:29:00 -- SQL相关 参考: 需要特别注意的是,如果只想取表的部分列生成SQLTable,那么Select语句必须包括主键列在内,例如: Select [_Identify], [编号], [名称], [单价], [库存] From {产品} 这里假定产品表是内部数据表,内部数据表的主键列是_Identify,如果是外部表,请使用实际的主键列名称。
项目: Dim cmd As New SQLCommand cmd.C cmd.CommandText = "SELECT [_Identify], [批次], [零件名称], [实际数量],[工资结算] From {计划排产} Where [工资结算] = False" jhpc = cmd.ExecuteReader
运行错误:至少一个参数没有被指定值。 WHY??
是不是需在ACCESS指定主键?
|
-- 作者:有点甜 -- 发布时间:2014/6/5 11:31:00 -- 列名不正确的原因。
你去看看你的access数据库,看是否有对应的列名。 |
-- 作者:land089 -- 发布时间:2014/6/5 11:31:00 -- 提供错误代码! |
-- 作者:石四 -- 发布时间:2014/6/5 11:41:00 -- 参考: 临时表执行后台数据处理方法。
在全局代码中定义一个变量: Public jhpc As DataTable
然后在AfterOpenProject事件中加上代码:
Dim cmd As New SQLCommand cmd.C cmd.CommandText = "SELECT * From {计划排产} Where [工资结算] = False" jhpc = cmd.ExecuteReader
窗口事件: Dim cmb As WinForm.ComboBox
结果没按 [工资结算] = False 加载批次,即加载了所有的批次。是什么原因呢? 测试 SELECT * From {计划排产} Where [工资结算] = False 还是能正确提取 工资结算=False的行。 |
-- 作者:石四 -- 发布时间:2014/6/5 11:44:00 -- 以下是引用有点甜在2014-6-5 11:31:00的发言:
列名不正确的原因。
你去看看你的access数据库,看是否有对应的列名。 查了,原来实际数量是表达式列,不在外部数据源。 |
-- 作者:有点甜 -- 发布时间:2014/6/5 11:52:00 -- 以下是引用石四在2014-6-5 11:44:00的发言:
查了,原来实际数量是表达式列,不在外部数据源。
如果是表达式,不能直接查询,需要额外加工,根据表达式的定义去求得实际数量 |
-- 作者:石四 -- 发布时间:2014/6/5 11:56:00 -- 改为:SELECT [_Identify], [批次], [零件名称], [实剪] * [张件数] AS [实际数量],[工资结算] From {计划排产} Where [工资结算] = False
能提取5个工资未结算的批次,但在ComboBox还是列出全部14个批次。 |
-- 作者:有点甜 -- 发布时间:2014/6/5 12:09:00 -- 这样写
cmb.ComboList = jhpc.GetComboListString("批次") [此贴子已经被作者于2014-6-5 12:09:27编辑过]
|
-- 作者:石四 -- 发布时间:2014/6/5 12:51:00 -- 以下是引用有点甜在2014-6-5 12:09:00的发言:
这样写
cmb.ComboList = jhpc.GetComboListString("批次") [此贴子已经被作者于2014-6-5 12:09:27编辑过] 哦,去掉“SQL”,好啦,谢谢! |