C# が LAN データベースにアクセスできないのはなぜですか

私のコンピュータはサーバーとして機能します。C# winform で生成されたインストール プログラムを同僚のコンピューターにインストールした後、私のコンピューター データベースに接続できません。すべてのデータベースを詰め込みましたが、機能しません。なぜですか?

cmd で Telnet IP アドレス ポート番号を実行し
、ログインできるかどうかを確認してください

winform プログラムを書きました。ローカル エリア ネットワークに 3 台のコンピュータがあります。私のコンピュータはサーバーとクライアントに分かれていません。データベースは 1 番のコンピュータにあります。2 番と 3 番のコンピュータにアクセスを依頼したいのです。 1 号機のデータベース?
データベースは A 上にあり、a はデータ サーバーであり、プログラムでデータベースにアクセスするように構成されているアドレスは、データベースにアクセスするためのマシン a のアドレスです。

winform を使用してアプリケーションを開発し、リモート データベースにアクセスする最良の方法は何ですか?
odbc を使用してデータベースに接続しますか、ソケットなどを使用しますか?
一般的なエンタープライズ アプリケーション、c/s はどのように設計されていますか?
クライアント winform、サーバー webservice+ejb、データ送信にはxmlとjsonのどちらを使用するのが適切ですか?

回線状況に応じて、ローカルエリアネットワークでデータベースに接続できる場合は odbc を使用し、データ量を確認するためにインターネットを使用する場合は、データ量が大きくない場合は Web サービスを使用し、データ量が少ない場合は Web サービスを使用できます。サイズが大きい場合は、サービス プログラム Remoting を使用することをお勧めします。Webサービスはejb方式または.net方式を使用できます。ただし、学習と管理の容易さの観点から、同型
IP アドレス + データベース名 LAN を使用することをお勧めします。

C# が LAN データベースにアクセスできないのはなぜですか
? C# が LAN 内のコンピューターのデータベースに接続できないのはなぜですか、ホームグループ、サーバー接続はそのコンピューターに接続でき、このコンピューターではすべての SQL サービスが有効になっています。コンピュータに接続しており、接続はリモート接続を許可するように設定されています。お互いに ping を送信できますが、なぜ接続できないのかわかりません。LAN 内の他のソフトウェアは使用できます。つまり、C# プログラミングでは接続できません。 cmd コマンドと ipconfig で取得した IP アドレス

コードは次のとおりです: static String str = "Data Source=192.168.1.110;Initial Catalog=Student;User Id=sa;Pwd=weiwangze"; private SqlConnection con; public bool CheckLogin(string name,string pwd) { con = new SqlConnection( str); con.Open(); StringBuilder sb = new StringBuilder(); sb.Append(" select count(*) from StudentInfo where StudentName='"+name+"' and StudentPwd='"+pwd+"' "); SqlCommand cmd = new SqlCommand(sb.ToString(),con); int i = (int)cmd.ExecuteScalar(); con.Close(); if(i>0){ return true; } return false;ネイティブ
インターネット上の C# 接続データベースに接続できます。192.168.1.102 または 127.0.0.1 を直接入力できます。VS はローカル エリア ネットワーク内のコンピュータに接続しようとしますが、ローカル エリア ネットワークに接続できません。 SQL Server2012、エンタープライズ/フルバージョンの両方をインストールしましたが、VS も完全なエンタープライズバージョンで、すべて 2012 の最新バージョンです。


192.168.1.110 のファイアウォール (内蔵システムを含む) がオフになっていますか。または、ローカル cmd で Telnet 192.168.1.110 1433 を使用して、ポートに接続できるかどうかを確認できます。

ここにはいくつかの問題が関係しています。まず SQL Server Management Studio を使用し、設定した上記の情報に従って、IP と指定したユーザー名を使用してこのデータベースに接続し、確認します (通常、そのマシンを使用しているかどうかを確認します)。 Express バージョンのデータベースがサーバーにインストールされており、データ ソースは 192.168.1.110\\sqlexpress である必要があります)

ローカルLANアドレス192.168.1.16のデータベースにアクセスしたい場合、C#でアクセスするデータベースの文字列はどのように記述すればよいでしょうか?以下にはアクセスできません
"データ ソース = 192.168.1.16; ネットワーク ライブラリ = DBMSSOCN; 初期カタログ = studnet; ユーザー ID = sa; パスワード = 123321; 統合セキュリティ = SSPI;" + "統合セキュリティ = true;"; "
データ
ソース= 192.168.1.16;初期カタログ=SmartCemsDBCenter;ユーザーID=sa;パスワード=123321;統合セキュリティ=SSPI;";

<add key="dbConnection" value="server=192.168.1.16;database=SmartCemsDBCenter;UID=sa;PWD=123321;最大プール サイズ=20000;Pooling=true;"/>

C# で LAN SQL Server データベースにログインする方法
1. たとえば、SQL サーバーは社内に設置されており、外部のコンピューター (C#) のクライアント プログラムで SQL データベースにログイン (操作) したいと考えています。社内LAN内、2. ちなみに、C#を使ってプログラムを作る場合、接続されている場合、最初のインターフェイスはデータベース接続インターフェイス(サーバー/IP名、データベース名、ユーザー名、パスワード)になります。今回は次回ログイン時に保存する方法 初めて入力した情報はどうする?コードはどのように書けばよいのでしょうか? 詳細をありがとうございます。(そして自分で料理を比較するためにメモを書きます)!

OracleConnection conn = new OracleConnection("Data Source=サーバー名; User Id=ユーザー名; Password=パスワード; DataBase=データベース名; Integrated Security=no;"); //これは接続データベース操作です これを保存する場合
information
、次のメソッドを作成できます:
private void StoreInfo()//XML 形式で記述された情報を DataTable に保存することが目的です
{ DataTable dt=new DataTable(); if (System.IO.File.Exists("保存パス") )//以前に保存されている場合{ dt.ReadXml("保存パス"); } else // 新しい xml を作成する{ dt.Columns.Add("DATASOURCE", typeof(String)); dt .Columns.Add("DATABAE ", typeof(String)); dt.Columns.Add("USERID", typeof(String)); dt.Columns.Add("PASSWORD", typeof(String)); } DataRow dr = dt.NewRow(); dr["DATASOURCE"] = サーバー名/ip; dr["DATABAE"] = データベース名;















dr["USERID"] = ユーザー名;
dr["PASSWORD"] = パスワード;
dt.Rows.Add(dr);
dt.TableName = "データベース接続情報";
dt.WriteXml(保存パス,XmlWroteMode.WriteSchema);
}
デバッグを行わない場合の一般的な意味は次のとおりです。DataTable を自分で作成し、次に DataRow を追加し、保存する情報を新しい DataRow に書き込み、それを DataTable に追加し、最後に DataTable.WriteXml(... ) メソッドで
ローカルに保存します。

おすすめ

転載: blog.csdn.net/zgscwxd/article/details/131554602