TCP/IP 以外のプロトコルを使用する場合、1433 以外のポートでSQL Serverに接続することはできません
この記事は、TCP/IP 以外のプロトコルを使用して 1433 以外のポートのSQL Serverに接続するときに発生する問題を解決するのに役立ちます。
元の製品バージョン: Visual C#
元の KB 番号: 307645
現象
伝送制御プロトコル/インターネット プロトコル (TCP/IP) SqlConnection.Open
以外のプロトコルを使用する場合、1433 以外のポート番号を指定してSQL Serverのインスタンスに接続すると失敗します。
解決方法
この問題を解決するには、TCP/IP プロトコルを使用し、接続文字列に含Server=ComputerName, PortNumber
めます。
動作の再現手順
Visual Studio .NET を起動します。
新しい Visual C# .NET コンソール アプリケーション プロジェクトを作成します。
プロジェクトに名前空間への参照が含まれていることを
System.Data
確認し、含まれていない場合は、この名前空間への参照を追加します。コードの後半で、これらの名前空間の
System
System.Data
System.Data.SqlClient
宣言を修飾する必要がないように、 名前空間で using ステートメントを使用します。using System; using System.Data; using System.Data.SqlClient;
Visual Studio では、既定で静的クラスと空
Main
のプロシージャが作成されます。 次のコードをコピーし、[コード] ウィンドウに貼り付けます。注:
このコードを実行する前に
User ID
<username>
、値とパスワード<strong password>
値を正しい値に変更する必要があります。 データベースに対してこの操作を実行するための適切なアクセス許可があることを確認しますUser ID
。class Class1 { static void Main(string[] args) { string sConnectionString; sConnectionString = "User ID=<username>;Password =<strong password>;Initial Catalog=pubs;Data Source=myServer,1200"; SqlConnection objConn = new SqlConnection(sConnectionString); objConn.Open(); SqlDataAdapter daAuthors = new SqlDataAdapter("Select * From Authors", objConn); DataSet dsPubs = new DataSet("Pubs"); daAuthors.FillSchema(dsPubs, SchemaType.Source, "Authors"); daAuthors.Fill(dsPubs, "Authors"); daAuthors.MissingSchemaAction = MissingSchemaAction.AddWithKey; daAuthors.Fill(dsPubs, "Authors"); DataTable tblAuthors; tblAuthors = dsPubs.Tables["Authors"]; foreach (DataRow drCurrent in tblAuthors.Rows) { Console.WriteLine("{0} {1}", drCurrent["au_fname"].ToString(), drCurrent["au_lname"].ToString()); } Console.ReadLine(); } }
環境に
sConnectionString
合わせて文字列を変更します。プロジェクトを保存します。
[ デバッグ ] メニューの [ スタート] をクリックし、プロジェクトを実行してデータベースに接続します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示