【发布时间】:2011-11-29 14:41:29
【问题描述】:
我目前正在编写一个从 firebird 数据库中读取日期的方法。 这是标题:
public static void ReadInfo(int first, int skip,string orderBy)
这是我的 SQL 查询:
const string SQL = "SELECT FIRST @first SKIP @skip A.ID,B.SHORTNAME, A.DATETIME, A.COMPUTERNAME,A.OSLOGIN, A.DBLOGIN, A.INFOTYPE, A.INFO FROM EVENTSGENERAL A JOIN EVENTSGENERATORS B ON B.GENERATOR_ = A.GENERATOR_ ORDER BY @orderBy";
这里是我为查询准备参数的地方:
cmd.Parameters.Add("@first", FbDbType.Integer).Value = first;
cmd.Parameters.Add("@skip", FbDbType.Integer).Value = skip;
cmd.Parameters.Add ("@orderBy", FbDbType.VarChar, 50).Value = orderBy;
问题是:前两个参数有效(第一个和跳过准备正确),我已经测试过了。但是,一旦我尝试运行 orderBy 参数,它就会引发异常:
{"Dynamic SQL Error\r\nSQL error code = -804\r\nData type unknown"}
我尝试将脚趾 FbDbType 更改为“文本”,但仍然无法正常工作。 对不起任何不好的英语。 提前感谢您提供的任何帮助。
【问题讨论】:
-
刚试过:cmd.Parameters.Add (new FbParameter("@orderBy", FbDbType.VarChar, 50)).Value = orderBy;还是不行。
标签: c# asp.net sql-order-by firebird