出会ったことについて:System.Data.SqlClient.SqlException:「'='の近くに文法の間違いがあります.」


このようなエラーは、一般的には、最終的なコンパクト文字列で生成されたSQL文に問題があることを意味します.チェック可能=添付フィールドには、一般的に次のような状況があります.
  • スペースが欠けているかどうか
  • 文字列タイプの値には、単一引用符(文字列内の単一引用符を含む置換処理なし)が少なくなっています.
  • 等号の後ろには値がありません.
  • 今日の質問文:
    string sql = "select StudentName,Gender,Birthday,StudentIdNo,StudentAddress from Students"+                     "where StudentId = {0}";
    改行後、「where」の前にスペースが少なくなりました.
    後でこのような間違いを避けなければなりません!
    2019-10-11記
    文章の閲覧量から見ると、この問題に遭遇した学生はまだ多いので、この問題に遭遇するあなたたちはプログラミングを始めたばかりかもしれません.この問題に遭遇した原因はsqlをスペルしているのか、xmlドキュメントをスペルしているのか、良い習慣を身につけて、改行するときに改行文字やスペースを忘れていないかどうかをチェックします.
    また、C#の文字列の書き方については、次のようなアドバイスがあります.
    スペルパラメータ付き文字列の従来の書き方ではFormat()関数が用いられ、プレースホルダ'{i}'の形式が用いられることが多い
    string.Format("storeId={0}&startTime={1}&endTime={2}", storeId,startTime,endTime);
    パラメータが多すぎる文字列では、パラメータの数や順序を間違えないように注意し、次のような書き方で代用できます.
    $"storeId={storeId}&startTime={startTime}&endTime={endTime}"