2017-11-19 11 views
1

오류입니다 : 내가 직접이 작동하고 내 데이터베이스를 통해이 명령을 실행하면동적 SQL 오류 SQL 오류 코드 = -104 토큰 알 수없는 여기

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 $"; 
} 

: 여기

Dynamic SQL Error  
SQL error code = -104  
Token unknown - line 1, column 162  
VALUE 

코드입니다 확인하지만 내 C# 코드 안에이 오류가 삭제됩니다.

답변

1

""VALUE""을 큰 따옴표로 사용하십시오. 하나의 따옴표로 문자열을 닫을 수 있습니다.

1

VALUE은 Firebird에서 reserved word입니다. 이는 개체 이름으로 쿼리에 사용할 수 없다는 것을 의미합니다. 다른 이름을 사용하거나 명시 적으로 "VALUE"으로 인용해야하므로 쿼리 파서는 예약어가 아님을 알 수 있습니다.