問題タブ [sqlclient]
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.
ado.net - 複合キーで ADO.NET SQLCommandBuilder を使用できますか?
6列のデータベーステーブルがあります。主キーは、6 つの列のうち 5 つの列で構成される複合キーです。
SqlClient.SqlCommandBuilder.GetDeleteCommand
を使用して行を削除しようとしています。
ただし、次のエラーが発生します。
「System.InvalidOperationException : DeleteCommand の動的 SQL 生成は、キー列情報を返さない SelectCommand に対してサポートされていません。」
には、テーブル内のSelectCommmand
すべての列が含まれています。
問題は複合キーでしょうか?
c# - レポート ビューアー - タイプ SqlClientPermission のアクセス許可の要求に失敗しました
オブジェクトをデータ ソースとしてローカル モードで Visual Studio 2008 の ReportViewer コントロールを使用しています。私のクラスは、データベースのデータ テーブルにマップされています。オブジェクトでは、必要に応じて関連オブジェクトをロードします。そのため、プロパティを使用しようとするまで参照を null のままにし、その後、データベースから自動的にロードしようとします。クラスは System.Data.SqlClient 名前空間を使用します。
Windows フォーム アプリケーションでオブジェクトを操作すると、すべてが期待どおりに機能します。しかし、レポート データ ソースとして使用するオブジェクトを渡すと、関連するオブジェクトを自動的に読み込もうとすると失敗します。コードは SqlConnection オブジェクトを作成し、それに対して GetCommand() を呼び出すと、次の例外がスローされます。
エラーを検索しようとしましたが、表示されるすべての結果は、SQL Server または ASP.Net で実行されている CLR アセンブリに関するものです。SqlConnection オブジェクトを作成する前に、(検索結果で提案されているように) コードに次の呼び出しを追加しようとしましたが、明らかに何もしませんでした:
何か案は?
sql-server - oledb データ プロバイダーよりも SQL Server 2005 で sqlclient データ プロバイダーを使用する利点
最近、数百万のレコードを含むアプリのバックエンドとして SQL Server 2005 Express Edition を使用しているため、oledb データ プロバイダーから sqlclient に移行することを考えています。
どなたか具体的な理由を教えていただけないでしょうか
すぐに返信してください
.net - Odbc、OleDb、SQLClient はいつ使用する必要がありますか? トレードオフとは
私はSQLServerデータベースから始めています。System.Data.SqlClient
したがって、名前空間を使用する必要があるようです。ただし、SqlServer データベースをシャットダウンして、MySql または Oracle に移動する可能性があります。このため、必要に応じて将来別のデータベース システムに簡単に移行できるように、.Net アプリがデータベースと通信する方法に関する一連の標準を考えています。
したがって、ここに基準があります:
- 可能であれば ORM を使用します (NHibernate など) (LINQ は SqlServer のみをサポートするため、LINQ はありませんが、エンティティ フレームワークとその Oracle および MySql のサポートはどうでしょうか?)
- ORM がやり過ぎの場合は、パラメーター化された SQL クエリを使用します。
- ストアド プロシージャは、データベースで実行する必要がある長時間または複雑なアクションにのみ使用してください。
これにより、当面の主な質問に至ります。 DAL のコーディングにはどの名前空間を使用すればよいですか?
System.Data.ODBC
選択は と の間にあるように私には見えますSystem.Data.OleDB
:
- トレードオフは何ですか?
- どちらが優先されますか?
- 最初の 3 つの基準についてどう思いますか?
c# - 複数の非同期 SqlClient 操作 - 良い例を探す
最初から WinForms クライアントで非同期操作を使用していますが、一部の操作のみです。ExecuteReader
または が完了するExecuteNonQuery
と、コールバック デリゲートが起動し、すべてが正常に機能します。
私は基本的に2つの問題を抱えています:
1) 実際のシステムでこれを処理するための最良の構造は何ですか? 私が見たすべての例は、フォームが操作の完了を処理し、EndExecuteReader
. もちろん、これは、フォームが通常よりもデータベースに緊密に結合されていることを意味します。そしてもちろん、フォームはいつでも簡単.Invoke
にそれ自体を呼び出すことができます。すべての非同期オブジェクトをAsyncCtrlBlock<T>
クラスから継承するように設定し、フォームとすべてのコールバック デリゲートを DAL の非同期オブジェクトのコンストラクターに提供しました。
2) 現在非同期ではないプログラムの一部に再度アクセスします。2 つの呼び出しを連続して行います。最初のモデルが完成したら、モデルの一部を設定できます。2 番目の部分が完成したら、モデルの残りの部分を完成させることができますが、最初の部分がすでに完成している場合に限られます。これを構造化する最良の方法は何ですか?1回目の読み込みができて、1回目の読み込みによる処理が2回目の起動中に進行していればいいのですが、最初の読み取りデータが完了しました。
c# - DbParameter IsNullable 機能?
私は ADO.Net のパラメーターをあまり扱っていません。カスタム .Net データ プロバイダー (SqlClient をモデルに) を作成しており、DbParameter から継承するパラメーター クラスに IsNullable プロパティを実装する必要があります。私のデータ プロバイダーはストアド プロシージャをサポートしないため、入力 (置換スタイル) パラメーターのみをサポートします。
MSDN のドキュメントでは、IsNullable の機能について、「パラメーターが null 値を受け入れるかどうかを示す値を取得または設定する」と述べており、かなり不明確です。IsNullable を false に設定しても、パラメーターを使用することを禁止するわけではないと言って、IsNullable の機能について多くの人が混乱していることがわかります。
これに基づいて、おそらくIsNullableプロパティはストアドプロシージャでの使用に関連し、ストアドプロシージャのパラメーターがnull可能かどうかであり、パラメーター値がnullにできるかどうかではないと考えています。
その場合、ストアド プロシージャがないため、実装は次のようになります。
SqlParameter の IsNullable の実装がどのように機能するかを確認するためにいくつかのテスト コードをいじる必要がないように、パラメーターを使用してコードを記述した経験のある人が IsNullable を説明できるとありがたいです。
sql-server - SqlClientでADO.NETを使用している場合にのみ、SQLServer2005への接続が非常に遅くなります
Windows 2008Server64ビット+SQLServer 2005 StandardEditionSP3を搭載した新しいサーバーがあります。
同じドメイン(Windows XP、.Net 3.5)のクライアントからこのサーバーへの接続を開こうとすると、接続を開くのに約20秒かかります。
接続を開いた後、すべてが通常どおり高速になります。
MDAC2.8接続またはADO.NETOleDbを使用する場合、まったく問題はありません。
接続が遅い理由を見つけるにはどうすればよいですか?
asp.net - リフレクションを介してロードされたアセンブリでの SqlClientPermission エラー
私は問題で本当に苦労しています。エンティティ保存パイプラインにフックするために使用できるカスタム アセンブリを顧客が提供できるように、変更したばかりの Web アプリケーションがあります。これらのカスタム アセンブリは、エンティティがデータベースに永続化されるときに、リフレクションを介して読み込まれます。これらは、すべてのデータ アクセスを処理する共通の DAL アセンブリを参照します。
このシステムが問題なく動作するテスト サーバー (Win2k3) があります。これを運用サーバー クラスター (1 つの Win2k3 と 1 つの Win2k8) にプッシュしたので、カスタム アセンブリは、データベース (SQL2005) にアクセスする DAL メソッドを初めて呼び出すときに爆発します。収集したログ情報は、SqlClientPermission の取得に失敗したことを示しています。ベスト プラクティスに反して、Web アプリを完全信頼で実行しています。カスタム アセンブリに厳密な名前が付けられています。
テスト サーバーの構成と実稼働サーバーの構成の違いをどこで探すことができるかについての提案はありますか? これが適切なフォーラムでない場合、どのフォーラムですか?
ありがとう、マシュー
asp.net - Asp.net MVC でデータベースに手動で接続する
Asp.Net MVC で LINQ または Entity Framework を使用する代わりに、sqlclient と sqlconnection (つまり、標準的な ADO.net の方法) を使用してデータベースに手動で接続することは可能ですか?
私を案内してくださいありがとう