-1

Oracle データベースを C# から更新しようとしていますが、このエラーが発生します

ORA-00933: SQLコマンドが正しく終了していません

そして、私は何をすべきかわかりません。

String sqlCommand = "UPDATE CLIENTI_CD ";
sqlCommand += "set nume_client=" + txtNumeC.Text+ "'";
sqlCommand += ",localit_client="+txtLocalitateC.Text+ "'";
sqlCommand +=",data_n to_date('"+txtDataN.Text+"','DDMMYYYY')";
sqlCommand += "where cod_client=" + label1.Text;
4

1 に答える 1

1

例外の直接の原因は次のとおりです。

省略"'"s:

  sqlCommand += "set nume_client='" + txtNumeC.Text + "'";
  sqlCommand += ",localit_client='" + txtLocalitateC.Text + "'";

省略"=":

  sqlCommand +=",data_n = to_date('" + txtDataN.Text+"','DDMMYYYY')"; // please, notice "="

ただし、最良の方法は、パラメータ化されたクエリを使用することです。

  String sqlCommand = 
    @"update CLIENTI_CD
         set nume_client = :prm_nume_client,
             localit_client = :prm_localit_client,
             data_n = to_date(:prm_date, 'DDMMYYYY')
       where cod_client = :prm_cod_client";

パラメータ化されたクエリを配置できない/配置したくない場合は、少なくともフォーマットされたものを使用してください

  String sqlCommand = String.Format(
     @"update CLIENTI_CD
          set nume_client = '{0}',
              localit_client = '{1}',
              data_n = to_date('{2}', 'DDMMYYYY')
        where cod_client = {3}",
    txtNumeC.Text, 
    txtLocalitateC.Text, 
    txtDataN.Text, 
    label1.Text);
于 2016-06-01T16:23:05.167 に答える