数据库where语句中可以用变量吗?如下
SQL="SELECTDataTime,DataValueFROMDataTableWHEREIndexBETWEENlastIndexANDfirstIndex“其中l...
SQL = "SELECT DataTime,DataValue FROM DataTable WHERE Index BETWEEN lastIndex AND firstIndex“
其中lastindex和firstindex是可变的,根据检索范围改变,这样可以吗?如果不可以应该怎么实现 展开
其中lastindex和firstindex是可变的,根据检索范围改变,这样可以吗?如果不可以应该怎么实现 展开
1个回答
2013-04-09
展开全部
不知道你是用什么语言, 什么数据库了。
假设是 C# + SQL Server 的话.
SQL = "SELECT DataTime,DataValue FROM DataTable WHERE Index BETWEEN @lastIndex AND @firstIndex“
然后执行 SQL 语句的时候, 定义好本次执行 SQL , 需要传入的参数, 就可以了。
也就是 @lastIndex 与 @firstIndex 参数的数据类型, 与数据的数值都是多少。
假设是 C# + SQL Server 的话.
SQL = "SELECT DataTime,DataValue FROM DataTable WHERE Index BETWEEN @lastIndex AND @firstIndex“
然后执行 SQL 语句的时候, 定义好本次执行 SQL , 需要传入的参数, 就可以了。
也就是 @lastIndex 与 @firstIndex 参数的数据类型, 与数据的数值都是多少。
追问
我的意思是lastindex是Int32的变量,如果直接写在sql里面就报错了,你的意思是@lastindex就表示它具体的值了吗?
是用c# Access
追答
Access 的话,
SQL 语句要这么写:
SQL = "SELECT DataTime,DataValue FROM DataTable WHERE Index BETWEEN ? AND ?“
// 创建一个 Command.
OleDbCommand cmd = conn.CreateCommand();
// 定义需要执行的SQL语句.
cmd.CommandText = SQL;
// 定义要查询的参数.
// 注意:Access 与 Oracle/SQL Server 不同,
// Access 的SQL中的查询的参数,无法命名。只能用 ? 来表明这是外部传入的参数.
// 因此,参数只能按照 SQL 中 ? 的顺序,进行添加.
cmd.Parameters.Add(new OleDbParameter("?", C# 里面的变量1));
cmd.Parameters.Add(new OleDbParameter("?", C# 里面的变量2));
// 然后就执行了......
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询