問題タブ [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.
vb.net - odbc経由でSQLServer2008に接続できるのに、vb.netコード経由では接続できないのはなぜですか?
接続先のデータベースがSQLServer2005からSQLServer2008に移動された古いvb.netプログラムをサポートしています。SQLServer2008に、ODBC接続でデータベースへのアクセスを許可するが、VB.NETでのアクセスを許可しない設定はありますか。プログラムで接続しますか?
私がアプリで受け取り続けるエラーは次のとおりです。
サーバーへの接続の確立中にエラーが発生しました。SQL Server 2005に接続する場合、この失敗は、既定の設定ではSQLServerがリモート接続を許可しないことが原因である可能性があります。(プロバイダー:名前付きパイププロバイダー、エラー:40 – SQL Serverへの接続を開くことができませんでした)
ただし、SQLサーバーインスタンスへのシステムDSNを作成するとき、およびVS2005の[ツール]>>[データベースに接続]を使用して接続することはできます。
接続に使用しているコードは次のとおりです。
c# - IDataReader からフィールドを読み取るときの断続的な System.IndexOutOfRangeException
コードに非常に奇妙な問題があり、失敗することはないと思います。これは、AspDotNetStoreFront に基づいて、ある程度のトラフィックがある Web サイトですが、それほど大きくはありません。リーダーからデータベース フィールドを読み取ろうとすると、サイトが断続的にクラッシュします。これは、Web サイトのさまざまな場所で発生します。このようなコードの例は、以下のobject pValue = rs["PropertyValueString"];の行にあります。
これは SqlClient の標準的な使用法であり、問題はありません。エラーのスタック トレースは次のとおりです。
AspDotNetStorefront.ASPDNSFProfileProvider で System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) で System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) で System.IndexOutOfRangeException が発生しました。 System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName) で System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName) で System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider プロバイダー) で AspDotNetStorefront.ASPDNSFProfileProvider.GetPropertyValues(SettingsContext コンテキスト、SettingsPropertyCollection settingsProperties) System.Web.Profile.ProfileBase.GetInternal(String propertyName) で (String propertyName) System.Web.Profile.ProfileBase.get_Item(String propertyName) で System.Web.Profile.ProfileBase.GetPropertyValue(String propertyName) で AspDotNetStorefront.SkinBase.OnPreInit(EventArgs e) で System.Web.UI.Page.PerformPreInit() で System.Web.UI.Page.ProcessRequestMain (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint)
サイトがクラッシュした場合、IIS を再起動して元に戻す必要があります。.NET 3.5 および SQL 2008 を搭載した Windows Server 2008 上にあり、すべて最新です。マシンは 64 ビットで、SQL Server では 32 ビット モードが有効になっており、「クラシック パイプライン モード」を使用するアプリケーション プールもあります。接続文字列は
どんな助けでも大歓迎です!!
c# - ORDER BYでSqlClientの順序付け結果を使用するc#は非常に遅い
奇妙な状況に続いて、昨日SqlClientを使用して並べ替えられた結果セットを取得したときにc#で取得しました。
たとえば、次のSQLクエリ:
SELECT Num, Name FROM Customer WHERE Num LIKE '%V%' OR Name LIKE '%V%' ORDER BY Num ASC
この特別な場合に注文する結果セットの長さは約100行です。
問題は次のとおりです。SQLServer自体でクエリを実行すると、非常に高速になります。「クエリの実行」をクリックした瞬間に結果が表示されます。しかし、SqlClientを使用してC#でクエリを実行すると、非常に遅くなります(約5〜10秒)。プログラムのすべての部分をベンチマークしたところ、SQLサーバーへの接続は約10ミリ秒で行われるため、2台のマシン間のリンクに問題はないことがわかりました。
クエリからORDERBYNum ASCを削除すると、SqlClientを使用したC#のクエリが、SQLサーバーで直接クエリを実行するのとほぼ同じ速度で結果を返すことがわかるまで、ほとんどすべてを試しました。
だから私の質問は:SQLServer自体と比較して使用時間を数千万倍するためにC#のSqlClientがORDERBYで何をしているのですか?=)
sql-server - SQL Server コマンド タイムアウト - 実行可能ファイルのみ
エラー メッセージが表示されます。
System.Data.SqlClient.SqlException: タイムアウトが発生しました。
これは、デフォルトで 30 秒に設定されているコマンド タイムアウトにまでさかのぼります。案の定、プロファイリングすると、ドットで 30 秒で完了 (失敗) します。
CommandTimeout
簡単な答えは、コード内の値を増やすことです。ここにキャッチがあります-私は作業する実行可能ファイルしか持っていません。
実行されているクエリは、通常 18 ~ 26 秒で実行されるストアド プロシージャであり、最近では 30 秒以上の範囲にまで増加しています。結合のある 3 つのテーブルに対する単一の醜い選択であるクエリを最適化するために、できる限りのことを行いました。データセットは成長し続け、将来再び問題になるため、これは実際にはオプションではありません。
ここやネット上の他の場所で見つけることができるすべてのアドバイスは、CommandTimeout
設定できる唯一の場所は接続が設定された後のコード内であり、コマンドのタイムアウトを調整する他の方法はないと言っています。
コマンドタイムアウトのデフォルト値をオーバーライド/設定するために、実行可能ファイルの逆コンパイルを開始する準備が整いました..
プログラムを使用せずにコマンドのタイムアウト値を増やす方法、コマンドのタイムアウト値を簡単に設定する方法、または他の (うまくいけば) より賢明な解決策を得る方法についての提案はありますか?
ご協力いただきありがとうございます!
ps - SO をかなり長い間読んでいます。いつも投稿しなくても答えが見つかるので、私の評判は悪臭を放ちます。皆さんは素晴らしいです。ついに始める方法を見つけてよかったです!
.net - .NET-SqlConnectionStringBuilder.AsynchronousProcessing
ばかげた質問かもしれませんが、SqlConnectionStringBuilderを使用するときに、なぜ.AsynchronousProcessingをfalseにしたいのか疑問に思っています。私の経験不足だと思いますが、特定の接続文字列で作成された接続を別のスレッドで実行できないようにする目的が何であるかを理解することはできません。これを積極的に防止したいのはいつですか?
connection-string - 接続文字列でproviderName="System.Data.SqlClient"を指定する場合
Windowsサービスが実行されてNT AUTHORITY\LOCAL SYSTEM
いるときに、サービスがデータベースに接続できないという問題が発生しました。
この特定のサービスに指定された接続文字列と同じアカウントで実行されている別のサービスの唯一の違いは、providerName
属性が欠落していることです。追加したら
接続文字列に対して、サービスはデータベースにアクセスできます。なぜこれが起こるのか誰かが説明できますか?System.Data.SqlClientがデフォルトのプロバイダーだと思いました。
java - Java 初心者: フロントエンド GUI を備えた組み込み可能な SQL クライアント、
GUIを備えたJava SE組み込み可能なSQLクライアントを探しています
c# - c#で接続文字列からテーブル階層を取得する方法はありますか?
C# 内の SQL ステートメントからテーブル階層を決定するという現在の要件があります。たとえば、次の sql ステートメントについて考えてみます。
これにより、Table1 に 3 つ、table2 に 4 つの 7 つの列が返される場合があります。列名と、理想的には (必須ではありませんが) その型を知る必要があります。
これはユーザーが入力したフィールドであるため、使用される SQL ステートメントを制御することはできません。C# では、接続を開き、そのステートメントを使用して SqlCommand を作成するのは非常に基本的なタスクです。必要に応じて、SQL を SqlDataReader または他の System.Data.SqlClient クラスに自由に実行できますが、実際の列の値ではなく、列を返す組み合わせが見つかりません。
誰でも助けることができますか?
これからもよろしくお願いします
.net - C# と SQL Server の接続
ローカル データベースに接続できないようです。実行するたびに、空白のウィンドウ (空白のコマンド ライン ウィンドウ) がポップアップ表示されます。
何が恋しいですか?
デバッグを実行すると、エラーが発生しますmyConnection.Open();
SqlException was unhandled: SQL Server への接続の確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした)
asp.net - page_loadasp.netでラベルのテキストが変更されていません
asp.netを見始めたばかりです。私はVBで動作するが、aspでは動作しないこのコードを持っています。
私はこれをpage_loadに入れました:
これがasp.netで機能しない理由はありますか?問題は、ラベルが空白であるということです。フォームが表示されるとすぐにvb.netで、ラベルに「接続されました」と表示されます。