DOBON.NETプログラミング道掲示板

■34174 / 3階層)  ポルトガル語の登録
□投稿者/ 魔界の仮面弁士 大御所(1210回)-(2019/03/01(Fri) 10:39:35)
  • アイコンNo34173に返信(あばば無人君さんの記事)
    > 当案件ではINSERT文を発行する時は
    > string sql = "INSERT INTO Test (Id, Message) VALUES (1, N'ポルトガル語')";
    > cmd.CommandText = sql;
    > cmd.ExecuteNonQuery();
    > という風にパラメータを使用せず、直にVALUESの文字列まで含めたSQLを生成しています。


    妙ですね。

    当方環境で追試験してみましたが、下記の 4 や 5 では問題ありませんでした。
    6 については、アクセント記号が失われて
     "Com licenca, voce pode falar Portugues?"
    になってしまいましたけど…。


    // パターン4(非推奨)
    using (var cmd = con.CreateCommand())
    {
     cmd.CommandText = $"INSERT INTO Test (Id, Message) VALUES (4, N'{葡語}')";
     cmd.CommandType = CommandType.Text;
     cmd.ExecuteNonQuery();
    }

    // パターン5(非推奨)
    con.ExecuteScalar($"INSERT INTO Test (Id, Message) VALUES (5, N'{葡語}')");

    // パターン6(非推奨)
    con.ExecuteScalar($"INSERT INTO Test (Id, Message) VALUES (6, '{葡語}')");


    > この発行方式ですとnvarcharカラムのデフォルトのSqlDbTypeが「Text」になってしまう様ですね・・・。
    いや、そもそも SqlParameter を使っていないのなら、SqlDbType は関係ないです。


    > しかし質問しておいてなんですが、何故この様な知識をお持ちなのでしょうか?
    知識なんて無いですよ。検索もしていません。

    質問を受けて、実際に何パターンかで検証してみようと、
    先のコードを書いてみただけのことです。
    ポルトガル語がどんなものかも知りませんでしたので、
    挿入するサンプル文も、Google 翻訳で適当な文章をでっち上げただけですし。
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[2]: ポルトガル語の登録 /あばば無人君 →Re[4]: ポルトガル語の登録 /魔界の仮面弁士
 
上記関連ツリー

Nomalアイコン ポルトガル語の登録 / あばば無人君 (19/02/28(Thu) 18:08) #34169
Nomalアイコン Re[1]: ポルトガル語の登録 / 魔界の仮面弁士 (19/02/28(Thu) 19:18) #34172
  └Nomalアイコン Re[2]: ポルトガル語の登録 / あばば無人君 (19/03/01(Fri) 10:14) #34173
    └Nomalアイコン ポルトガル語の登録 / 魔界の仮面弁士 (19/03/01(Fri) 10:39) #34174 ←Now
      └Nomalアイコン Re[4]: ポルトガル語の登録 / 魔界の仮面弁士 (19/03/01(Fri) 11:15) #34175
        └Nomalアイコン Re[5]: ポルトガル語の登録 / あばば無人君 (19/03/01(Fri) 12:02) #34176

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -