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

C#を使用してMysqlに接続するにはどうすればよいですか?

    差し迫った問題は、接続文字列が正しくないか、データベースサーバーが利用できないことです。接続文字列は次のようになります

    Server=localhost;Database=testdb;Uid=<username>;Pwd=<password>;
    

    を使用 および 実際の値に置き換えられます。

    それに加えて、コードにはいくつかの問題があり、これが本番コードになることを意図している場合、そしておそらくこれが何かを学ぶための単なるおもちゃのプロジェクトである場合でも、間違いなくそれらを調べる必要があります。リストは特定の順序であり、包括的ではない場合があります。

    1. 接続文字列をハードコーディングしないでください。 代わりに、構成ファイルに移動します。
    2. 構成ファイルまたはソースコードにプレーンテキストのパスワードを含めないでください。 Windows認証、証明書 などのさまざまなソリューションがあります またはパスワードが保護されています Windows Data ProtectionAPI による 。
    3. IDisposableを破棄するだけではいけません IDisposable.Dispose()を呼び出すことによるインスタンス 。 代わりに、 usingを使用してください 例外の場合でもリソースを解放するためのステートメント。
    4. 文字列操作技術を使用してSQLステートメントを作成しないでください。 代わりに、 SqlParameter> SQLインジェクション攻撃を防ぐため。
    5. プレーンテキストのパスワードをデータベースに保存しないでください。 代わりに、少なくともパスワードのソルトハッシュを保存し、MD5やメンバーではなく低速ハッシュ関数を使用します。 SHAファミリー。
    6. IDbCommandを使用できます。 ExecuteScalar スカラー結果を取得し、データリーダーの使用を回避します。
    7. ブール値とtrueの比較 またはfalse 冗長であり、コードにノイズを追加するだけです。 if(reader.IsDBNull(0)==true)の代わりに if(reader.IsDBNull(0))を使用できます 。 if(reader.Read()!=false)についても同じことが言えます。 if(reader.Read()==true)と同等のもの したがって、 if(reader.Read())
    8. エンティティフレームワーク のようなO/Rマッパーを使用する 通常、SQLコマンドのレベルでデータベースを操作するよりも優先されます。


    1. ActiveRecord/Railsで実際のmysqlTIMESTAMP列を使用するようにする

    2. 参加によるPostgresqlアップデート

    3. アドホック接続文字列とMSAccessの異種クエリ

    4. MyISAMレコード構造を理解する