-- 作者:狐狸爸爸
-- 发布时间:2009/7/4 21:35:00
--
常见问题
一、误用表达式例
有次我在定义一个查询表的时候,使用了下面的SQL语句:
Select 产品, Sum(数量) As 数量, Sum(金额) As 金额 From {订单} Group By 产品
在执行的时候,提示了这样的错误:别名“金额”循环引用! 当时我觉得很奇怪,明明没有循环引用啊! 其实这是因为金额列是一个表达式列,并不存在于后台数据库,所以正确的SQL语句是:
Select 产品, Sum(数量) As 数量, Sum(数量 * 单价 * (1 - 折扣)) As 金额 From {订单} Group By 产品
同样下面的SQL语句也是错误的:
Select 产品, 数量, 金额 From {订单}
执行的时候会提示错误:至少有一个参数没有指定值! 正确的语句是: Select 产品, 数量, (数量 * 单价 * (1 - 折扣)) As 金额 From {订单}
表达式例不能出现在SQL语句中,这一点大家一定要记得。
二、忘记设置链接名称
如果SQLCommand操作的是外部数据源,那么一定要设置其ConnectionName属性,指定外部数据源名称:
Dim cmd As New SQLCommand Dim dt As
DataTable cmd.CommandText = "SELECT * From {订单} Where 产品 = \'PD01\'" cmd.ConnectionName = "外部数据源名称" dt = cmd.ExecuteReader() Dim dst As WinForm.DataList = e.Form.Controls("DataList1") dst.DataTable = dt dst.Build()
很多用户,包括我自己,都会犯这个错误,明明代码正确,却没有结果,折腾半天,只是因为没有设置数据源名称而已
|