🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

739閲覧

C#でエラーが出てログインができない。

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2021/02/27 10:06

編集2021/02/27 10:13

以前、「C#でログインする方法」という質問を投稿した者です。
ログインできるかの確認のために試しに海外のサイト(https://www.csharp-console-examples.com/winform/create-simple-login-form-in-c-with-mysql/)のコードを入力してみたところ、

C#

1MySql.Data.MySqlClient.MySqlException: 'Unable to connect to any of the specified MySQL hosts.'

というエラーが出てログインができませんでした。

以下がコードです。(一部改変しています。)
改変した部分は、データベース名、データベースのユーザー名、データベースのパスワード、テーブルの名前です。

C#

1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10using MySql.Data; 11using MySql.Data.MySqlClient; 12 13namespace Software 14{ 15 public partial class Form2 : Form 16 { 17 MySqlConnection con; 18 MySqlCommand cmd; 19 MySqlDataReader dr; 20 public Form2() 21 { 22 InitializeComponent(); 23 con = new MySqlConnection("Server=localhost;Database=Example;user=Example;Pwd=Dance;SslMode=none"); 24 25 } 26 27 private void pictureBox3_Click(object sender, EventArgs e) 28 { 29 string user =email.Text; 30 string pass = password.Text; 31 cmd = new MySqlCommand(); 32 con.Open(); 33 cmd.Connection = con; 34 cmd.CommandText = "SELECT * FROM userDeta where usr='" + email.Text + "' AND pwd='" +password.Text + "'"; 35 dr = cmd.ExecuteReader(); 36 if (dr.Read()) 37 { 38 MessageBox.Show("Login sucess Welcome"); 39 } 40 else 41 { 42 MessageBox.Show("Invalid Login please check username and password"); 43 } 44 con.Close(); 45 } 46 } 47 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/02/27 10:09

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 >(一部改変しています。) どの部分を改変したのか書かないと分かりません。
m.ts10806

2021/02/27 10:10

前の質問で言及していますが、調べてないのでしょうか。 https://teratail.com/questions/324701 m.ts10806 2021/02/26 16:28 基本レンタルサーバーのデータベースはサーバー内からしかアクセスできない制限があったはずです。調べてみてください。 DBとのやり取りはAPI用意してC#側から叩くようにするしかないですね。
退会済みユーザー

退会済みユーザー

2021/02/27 10:15

調べてみましたが、情報が少なく、よく分かりませんでした。
m.ts10806

2021/02/27 10:20

ではMySQLが入ってるサーバーの提供元に問い合わせてください。
退会済みユーザー

退会済みユーザー

2021/02/27 10:20

了解しました。
dodox86

2021/02/27 10:36

接続文字列がlocalhostになってますけど。丸写しするだけでなくそれなりに意味を考えないとダメです。そうでないと、回答いただいても恐らく理解できません。
退会済みユーザー

退会済みユーザー

2021/02/27 10:51

なるほど。確かにそうですね。 私が思うに、エラーに「対象のコンピューターによって拒否されたため、接続できませんでした。」というのがあったので、恐らくレンタルサーバー(XREA)から接続を拒否されているのではないかと推測しています。 一応、XREAに問い合わせてみます。
m.ts10806

2021/02/27 10:58

先にしたコメントの通り、普通、許可されてません。 自身がサーバー運営の立場になってみればわかります。
退会済みユーザー

退会済みユーザー

2021/02/27 11:00

なるほど。普通は許可されていないんですね。 確かに考えてみればそうでした。
m.ts10806

2021/02/27 11:02 編集

「だから言ったのに」とこの質問を見た時点で私は思ってます。 別の「望ましい」やり方もたくさん言及したはずですが、押し通されるなら、「まぁそうなるよね」です。
退会済みユーザー

退会済みユーザー

2021/02/27 11:03

別のやり方というのは、APIのことですか? もしそうなら、調べてもあまり分かりませんでした。
退会済みユーザー

退会済みユーザー

2021/02/28 00:11

今回は諦めます。 理由は、セキュリティが危険かもしれないと思いましたし、私の技術ではまだまだだからです。 本当に申し訳ございません。 教えてくださり、ありがとうございました。
m.ts10806

2021/02/28 00:16

>調べてもあまり分かりませんでした。 調べたところで実際に組んでみないと分かるようにはなりません。 APIってすごく要約すると「受け取った情報を元にて既定の処理をして既定の情報を返す機能」のことなので、 PHPで組まれたであろう登録機能とかも一緒ですよ。 フォームから送られた情報を元に登録するように組んだわけですよね。 その「送られる情報」ってフォームからでないと処理できないか?考えてみてください。 既定の情報が外から送られてきても同じようにできる。つまり単体で動作できる機能になっているということです。 という観点だと、Ajaxによる非同期通信なんて、まさに画面からAPIを利用しているということと同義です。
退会済みユーザー

退会済みユーザー

2021/02/28 00:19

なるほど。確かにそうですね。 あと、言うのを忘れていましたが、PHPからだとログインすることができました。
m.ts10806

2021/02/28 00:24

ですから、レンタルサーバーだと直にアクセスできるのはサーバー内からだけだと以前から。 自由にしたいならVPSとかセキュリティ設定も自由にできる環境を借りることですね。 インフラ要素も強いのでさらに広範囲のスキルが必要です。 それが難しいと思うのなら、ルール内で出来る方法を考えるしかありません。
退会済みユーザー

退会済みユーザー

2021/02/28 00:27

はい。すみません。 今度、ラズベリーパイを買って、Webサーバーを構築してやってみようと思います。
dodox86

2021/02/28 00:36

C#のプログラムを作っている開発環境にデータベースサーバーとWEBサーバーをインストールして学習すれば良いのでは。
m.ts10806

2021/02/28 00:36

とりあえずこの質問どうするか決めてください。 具体的な解決策を求めるのか、自分で解決してしめるか、適切ではないと削除するのか
退会済みユーザー

退会済みユーザー

2021/02/28 00:37

確かにそうですね。 ApacheとかMySqlとかを入れてやってみます。
退会済みユーザー

退会済みユーザー

2021/02/28 00:38

解決済みにします。
guest

回答1

0

ベストアンサー

Webサーバーを構築することにしました。

投稿2021/02/28 00:41

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/02/28 05:10

そもそもの考え方が間違っているのではないかと思います。そのあたりからよく考えてみることをお勧めします。
退会済みユーザー

退会済みユーザー

2021/02/28 07:54

はい。分かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問