2017-03-16 78 views
0

很基本的sql命令。只是想从我正在循环的不同表中获得计数。但是,如果我改变sqlCommand并添加';'最后我得到异常,SQL命令没有正确结束。SQL命令没有正确结束异常

 sqlCommand = String.Format("SELECT COUNT(1) FROM SO.{0} where DR_ADDRESS_ID = {1};", table, drAddr); 

我很好奇为什么这个分号让这个异常抛出,因为命令是以';'结尾的,

sqlCommand = String.Format("SELECT COUNT(1) FROM SO.{0} where DR_ADDRESS_ID = {1}", table, drAddr); 
    try 
    {  
     using(OracleCommand ocCommand = new OracleCommand(sqlCommand,CommandType.Text)) 
     { 
      ocCommand.Connection = dbConnection; 
      recordCounter = Convert.ToInt64(ocCommand.ExecuteScalar()); 
     }    
    } 
    catch (Exception er) 
    { 
     MessageBox.Show(String.Format("Error in RecordCount for table {0}: Reference {1} for log. err = {2}",table, logFilePath,er.ToString())); 
     recordCounter = -1; 

     using (StreamWriter writer = new StreamWriter(logFilePath, true)) 
     { 
      writer.WriteLine(String.Format("Table: {0}. Command {1}", table,sqlCommand.ToString())); 
     } 
    } 
+0

您正在使用哪种数据库产品?可能不是MySQL,Oracle和SQL Server。请修改标签以仅保留相关的标签。 – mathguy

+1

基于代码和错误消息,我删除了不相关的标签。 –

+0

@mathguy我的道歉,Oracle数据库是db产品。 – Korey

回答

0

半角冒号通常仅用作交互式工具(如sqlplus)的命令终止符。

相关问题