問題タブ [idbconnection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 「接続を開く」とは実際にはどういう意味ですか?
データベース接続が IDisposable を実装する理由を誰かに説明しようとしていたとき、「接続を開く」が実際に何を意味するのかよくわからないことに気付きました。
だから私の質問は - 接続を開くときにc#は実際に何をしますか?
ありがとうございました。
nhibernate - 1つのisessionと同じidbconnectionをnhibernateします
同じISessionでsession.Get(id)を2回実行するコードがあります。ISessionが2つのidbconnectionsを作成していることがわかります。これはある種の構成によるものだと思います。同じidbconnectionでフェッチを実行したいと思います。どのように?
c# - DbType をパラメーターとして渡す一般的な方法はありますか
このパラメーター化されたクエリ、または同等のクエリを実行する必要があります。
ALTER TABLE tableName ADD COLUMN ? ?
新しい列の名前としてのパラメーターとデータ型を使用します。たとえば、'Name' DbType.Double を渡すと、次のように解決されます。
ALTER TABLE tablename ADD COLUMN Name FLOAT
IDbConnection
コードは特定の実装ではなくインターフェイスで動作しているため、DbType とフィールド タイプの名前の間のマッピングを作成することはできません。これを行う一般的な方法はありますか?現在、実装ごとに個別のマッピングがありますが、これは明らかに理想とはほど遠いものです。
c# - C# MySql Connector/Net の問題
現在モノを実行しています。/usr/lib/mono/gac にある gac フォルダーに MySQL をロードし、connector/net をインストールしました。問題は、単純な接続テストを使用して実行しようとするたびに、次のエラーが発生することです。
正しく思い出せば、アセンブリ ファイルのはずです
これが私のコードです:
dapper - ダッパー。IDbConnection と IDbTransaction
Dapper で IDbConnection と IDbTransaction を使用するにはどうすればよいですか?
現時点では、IDbConnection
. 次のようなもの:
しかし、時には 2 つのコマンドを送信する必要がありますか? と を使用する必要がBeginTransation
ありEndTransaction
ますか?
c# - 管理されていないリソース、IDisposableおよびカスタムタイプ
私の質問に対する答えを見つけるために無数のトピックを読むのにうんざりしていたので、この主題に関するさらに別のトピック:)
次のクラスがあるとしましょう。
データベースへの接続はusingステートメント内でインスタンス化されるため、con.close()メソッドと最終的にはcon.dispose()メソッドが呼び出されますが、MyClassにIDisposableを実装する必要がありますか?MyClassは、スコープ外になるとガベージコレクションされますか?
編集:
お返事ありがとうございます、それは私が思ったことですが、それを明確にする必要がありました。もう1つ質問があります。
私のクラスにデータベースで何らかの作業を行う複数のOperations()がある場合、リソース消費の観点から、SqlConnectionメンバーを作成し、クラスコンストラクターでインスタンス化して開き、IDisposableを実装して閉じるのではなく実行することをお勧めします。各操作で「using」ステートメントを使用する(各操作でデータベースを開いたり閉じたりする)?もちろん、その方法では、ステートメントを使用する際にMyClassオブジェクトをインスタンス化して使用する必要があります。
asp.net-mvc - 接続文字列とIDbConnectionの挿入
接続文字列とインスタンスのインスタンスを挿入することのトレードオフは何IDbConnection
ですか?
StructureMapを使用して、ASP.NET MVCアプリケーションにさまざまなサービスを挿入します。そのほとんどは、LINQ-to-SQLクエリのデータベースアクセスを必要とします。注入は、一般的な接続文字列IDbConnection
パラメーターよりもテスト可能でIoCの構成が簡単なようですが、接続をブロックで明示的にラップしないと、開いている接続がぶら下がるのが心配です。using
注意すべき接続プールの長所または短所はありますか?
挿入された接続文字列
注入されたIDbConnection
asp.net-mvc - 永続的なHTTP接続を使用したIDbConnectionライフサイクル管理
HttpContext
SignalRハブなどのASP.NETMVCアプリケーションに永続的なHTTP接続がある場合にスコープされた、StructureMapを使用したオープンデータベース接続の有効期間の管理に問題があります。
私のDIコンテナであるStructureMapは、IDbConnection
いくつかのサービスにオープンを注入します。これらのデータベース接続が閉じられ、適切に破棄されるようにするために、私ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects()
はEndRequest
イベントを呼び出します。
これは、データベース接続を必要とするサービスがSignalRハブに注入されるまで、MVCコントローラーに最適です。これにより、クライアントごとに永続的なHTTP接続が開いたままになり、最終的に接続プールが飽和状態になります。
シングルトンにスコープIDbConnection
を設定すると、アプリケーションごとに1つの接続のみが開かれ、プールが飽和状態になりませんが、接続がロックされたりタイムアウトになったりした場合に備えて、これはお勧めできません。
では、SignalRハブのデータベース接続の範囲をカスタマイズする方法はあるのでしょうか。各ハブメソッドでサービスインスタンスを解決しようとしましたが、これでもHttpContextスコープでデータベース接続がインスタンス化され、呼び出し元のクライアントのハブ接続の間、データベース接続が開いたままになります。
永続的なHTTP接続がある場合、HTTPスコープのコンテキストでStructureMapを使用してデータベース接続の有効期間をどのように管理する必要がありますか?
サンプルコード
典型的なサービス
典型的なSignalRハブ
StructureMapの構成
Global.asax.cs
c# - IDbConnection から「継承」する方法 - 1 つのプロパティ (DatabaseType) を追加するだけです
からどのように継承しIDbConnection
ますか? DatabaseType
1 つのプロパティ ( MS Access、SQL サーバー、Paradox など)を追加したいと思います。私が言えることIDbConnection
はインターフェイスであり、したがって、インターフェイス継承チェーン全体のすべてのメンバーを実装することを望んでいると思います。それは大変な作業のようです。に 1 つのプロパティを追加する最良の方法は何IDbConnection
ですか?
更新 私がやろうとしていることはこれです。頻繁に使用する 3 つのメソッドがあります。ExecuteReader、ExecuteNonQuery、ExecuteNonQueryGetIdentity です。これらは頻繁に使用され、パラメーター (IDbConnection Conn、文字列 SQLString、object[] SQLParams) があります。これら 3 つのメソッドとすべてのプロジェクト メソッドに DatabaseType を追加する最善の方法は、プロジェクトのコードを 1 行だけ更新する必要があるように、IDbConnection を「オーバーライド」することだと考えました。
パラメーターを追加して IDbCommand を作成する際に、私が異なる方法で行うことがいくつかあるため、DatabaseType を知りたいと思います。具体的には DateTime です。
例えば:
c# - 複数行挿入のIDBCommandパラメーター
これらの行に沿って複数行の挿入ステートメントを作成したいと思います。
ここで、挿入される行数は可変です。IDBCommand
パラメータ化を使用してこのクエリを作成する方法はありますか?