2

アプリケーションを SQL Server 2008 データベースに接続しています。

次のプロバイダーの違いは何ですか: System.Data.SqlClient プロバイダーと SQLNCLI10.1 がある場合は?

SQL Server データベースへの接続に使用する必要があるのはどれですか?その理由は?

ありがとう、

4

2 に答える 2

6

System.Data.SqlClientマネージドプロバイダーです。SQLNCLIOleDB プロバイダーです。つまり、それらは可能な限り明確に区別されます。どちらも SQL Server に接続しているという事実以外に、実際には共通点はありません。しかし、まったく異なる無関係なテクノロジーを使用しています。アプリケーションでは、マネージ コード (.Net) を記述するときに SqlCLient を使用する必要があります。OleDB はネイティブ アプリケーション (C++) 用です。

于 2011-08-22T18:17:18.687 に答える
2

唯一の違いは、後者が特定のバージョンを指定していることだと思います(コードがサーバーからサーバーに移動したり、ボックスがソフトウェアの更新などに触れたりすると、存在する場合と存在しない場合があります)。前者は「現在のバージョンを入手してください」と言うだけで、私の考えでは安全です。

古典的な ASP の時代にさかのぼると、最新バージョンを明示的に (たとえばProvider=SQLOLEDB.1) 指定した方がうまくいくように思えたことを漠然と覚えていますProvider=SQLOLEDBが、具体的なことは思い出せません。一部の Web ホストには最新のものがないことを覚えています。より新しいバージョンの明示的な要求は、「プロバイダーが見つかりません」のようなもので失敗しました。

于 2011-08-22T16:47:18.780 に答える