这是错误:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 162
VALUE
以下是代码:
using (FbDataAdapter da = new FbDataAdapter(@"SELECT DOC_ITEMS.ID, PRODUCTS.PRODUCTKEY, PRODUCTS.NAME, DOC_ITEMS.QUANTITY, UNITS.UNIT, DOC_ITEMS.PRICE, DOC_ITEMS.TAX, (DOC_ITEMS.PRICE * DOC_ITEMS.QUANTITY) AS VALUE
FROM PRODUCTS INNER JOIN
DOC_ITEMS ON PRODUCTS.PRODUCTID = DOC_ITEMS.PRODUCTID INNER JOIN
UNITS ON PRODUCTS.UNITID = UNITS.UNITID
WHERE (DOC_ITEMS.DOCUMENTID = @DocumentID)", con))
{
da.SelectCommand.Parameters.AddWithValue("@DocumentID", documentId);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
dataGridView1.Columns["PRODUCTKEY"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns["ID"].Visible = false;
dataGridView1.Columns["NAME"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns["QUANTITY"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns["QUANTITY"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
dataGridView1.Columns["UNIT"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns["PRICE"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns["PRICE"].DefaultCellStyle.Format = "0.00 $";
dataGridView1.Columns["TAX"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns["TAX"].DefaultCellStyle.Format = "0\\%";
dataGridView1.Columns["VALUE"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns["VALUE"].DefaultCellStyle.Format = "0.00 $";
}
当我通过我的数据库直接运行此命令时,它正常工作,但在我的c#代码中,它会丢失此错误。
答案 0 :(得分:1)
将""VALUE""
与双引号一起使用,因为一个引号将关闭您的字符串。
答案 1 :(得分:1)
VALUE
是Firebird中的reserved word,这意味着它无法在查询中用作对象名称。您需要使用不同的名称,或者明确地将其引用为"VALUE"
,因此查询解析器知道它不是保留字。
答案 2 :(得分:0)
我试图在我的Interbase数据库中创建一个表。
动态SQL错误 SQL错误代码= -104 意外的命令结束
这是我的表:
CREATE TABLE Medecin(
Code Integer ,
Nom varchar(30) ,
prénom varchar(30) ,
spécialité varchar(30) ,
Adresse varchar(50) ,
telephone varchar(14)
);
这里有什么问题?