2013-01-03 186 views
1

我正在通过用户代码“TBL附近的语法错误”来处理SQLException。“我还尝试用表名和无括号替换[PrioContextDb]。[dbo]。[RatingListTriangleModels]。这个SQL查询有什么问题?

using (SqlCommand command = new SqlCommand 
        ("delete from [PrioContextDb].[dbo].[RatingListTriangleModels] TBL where (TBL.To1Id = @MY_ID and TBL.To2Id = @OTHER_ID) or (TBL.To2Id = @My_ID and TBL.To3Id = @OTHER_ID) or (TBL.To3Id = @My_ID and TBL.To1Id = @OTHER_ID)", cn)) 
       { 
        // 
        // Add new SqlParameter to the command. 
        // 
        command.Parameters.Add(new SqlParameter("MY_ID", myToid)); 
        command.Parameters.Add(new SqlParameter("OTHER_ID", theirTradeObjectid)); 
        var no = command.ExecuteNonQuery(); 

回答

-1

DELETE keywrod后添加别名TBL像这样:

delete TBL 
from [PrioContextDb].[dbo].[RatingListTriangleModels] TBL 
where ... 
... 
+0

解决了它,欢呼! –

1

请尝试删除别名TBL。

delete from [PrioContextDb].[dbo].[RatingListTriangleModels] 
where (To1Id = @MY_ID and To2Id = @OTHER_ID) or 
    (To2Id = @My_ID and To3Id = @OTHER_ID) or 
    (To3Id = @My_ID and To1Id = @OTHER_ID) 
2

正如其他人的建议,你需要删除TBL到您的SQL语句。你也需要从你的所有子句中删除它。

但它看起来像你缺少你的参数@这可能是你得到的下一个错误。

command.Parameters.Add(new SqlParameter("@MY_ID", myToid)); 
command.Parameters.Add(new SqlParameter("@OTHER_ID", theirTradeObjectid));