sql >> データベース >  >> RDS >> Sqlserver

SQLクエリC#で最大長エラー(長すぎます)を解決する方法

    エラーは、識別子 名前が長すぎます。これは、閉じていない引用符エラーと組み合わされて、おそらく最初の引用符を逃したことを意味します.つまり、これがあります:

    INSERT INTO Foo ( A ) VALUES ( AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
      

    の代わりに
    INSERT INTO Foo ( A ) VALUES ( 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
      

    文字列の連結を介してクエリを作成するべきではありません。これが理由の 1 つです。パラメータ化されたクエリは、適切な引用を取得します。 (注:パラメータ化されたクエリを使用するために、ストアド プロシージャを使用する必要はありません。)

    var sql = "INSERT INTO My_RSS ( Title, Description, Date, Link, Rate, Name )
               VALUES ( @Title, @Desc, @PostDate, @Link, @Rate, @Name )";
    
    SqlCommand cmd = new SqlCommand(sql, Connect());
    cmd.Parameters.Add("@Title", SqlDbType.VarChar, 100).Value = RSS_title;
    cmd.Parameters.Add("@Desc", SqlDbType.VarChar, 8192).Value = RSS_description;
    cmd.Parameters.Add("@PostDate", SqlDbType.SmallDateTime).Value = DateTime.Now;
    cmd.Parameters.Add("@Rate", SqlDbType.Int).Value = rate;
      

    など



    1. flake8は、フィルター句のブール比較==に文句を言います

    2. 一致する反転に基づいてレコードをグループ化する必要がある

    3. SQL Server 2008 R2 での文字マッピング / 文字ごとの検索と置換

    4. データベースに関するPHPOOPの問題