3

MySQL データベースに接続されたログイン フォームを作成しようとしています。フォームに挿入された SQL コネクタをインストールしましたが、接続しようとすると、指定された MySQL ホストのいずれにも接続できないというエラーが表示されます。これが私のコードです:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace ECBSRecruitmentAgencySoftware
{
    public partial class LogIn : Form
    {
             public LogIn()
        {
            InitializeComponent();
        }

             public bool tryLogin(string username, string password)
             {
                 MySqlConnection con = new MySqlConnection("host=think-tek.net;user=ctutorial;password=chang3d;database=ctutorial_logintest;");
                 MySqlCommand cmd = new MySqlCommand("Select * FROM login WHERE user_name = `" + username + "` AND user_pass = `" + password + "`;");
                 cmd.Connection = con;
                 con.Open();
                 MySqlDataReader reader = cmd.ExecuteReader();
                 if (reader.Read() != false)
                 {
                     if (reader.IsDBNull(0) == true)
                     {
                         cmd.Connection.Close();
                         reader.Dispose();
                         cmd.Dispose();
                         return false;
                     }
                     else
                     {
                         cmd.Connection.Close();
                         reader.Dispose();
                         cmd.Dispose();
                         return true;
                     }
                 }
                 else 
                 {
                     return false;
                 }
             }
        private void button1_Click(object sender, EventArgs e)
        {

            if (tryLogin(textBox1.Text, textBox2.Text) == true)
            {
                MainScreen F2 = new MainScreen();
                F2.Show();
                this.Hide();
            }

             else MessageBox.Show("Wrong details!");

        }




}
}
4

6 に答える 6

5

このサイトは、接続文字列の点で非常に役立ちます。接続文字列が無効のようです。

また、ユーザーが適切なアクセス権限を持っていることを確認してください。多くのホスティングプロバイダーは、ローカルホストからのアクセスのみを有効にします。ユーザーがリモートアクセスできるようにするように要求する必要がある場合があります。

于 2012-05-16T13:07:24.980 に答える
1

MySQL の接続文字列は次のとおりです。

string mySqlConn = "server=localhost;user=username;database=databasename;port=3306;password=password;";

接続文字列に対してスローされる例外は何ですか? エラー番号があるはずです。

于 2012-05-16T12:48:53.237 に答える
0

私は同じ問題を抱えていました、そしてエラーは接続文字列にありました!どういうわけか、私はそれを2つの異なる場所に2回宣言します。1回目はローカルホストに、2回目はサーバーマシンデータベースに。クライアントマシンでプロジェクトを公開したとき、ローカルホスト(私のコンピューターは何でしたか)に接続できませんでした:-)そしてこれをどのように取得するのか疑問に思いました:「指定されたmysqlホストのいずれにも接続できません」

これは、人間が何日も彼の人生を複雑にすることができる方法です!:-)

もちろん、サーバーマシンのdbに接続することができました。

だから、例えば、これは私の問題でした。そして、解決策は、一度に1つのデータベースに宣言することでした!!!

また、正常に機能した接続文字列を共有したいと思います。

cs = @ "server = xxx.xxx.xxx.xxx; uid = xxxx; password = xxxxxxxxx; database = xxxxx; port = 3306";

于 2012-09-01T10:41:58.113 に答える
0

あなたの文字列接続は正しいですエラーはありませんが、最初にローカルサーバーでチェックしてくださいこれは例外です.xamppが実行されていないことを確認してください.最初にxamppを起動してブラウザに移動し、localhostと入力してください.動作している場合は、localhostを開くとxamppメニューが表示されます次に、サーバーが何であれ接続を試みます

string connection = "server=localhost;database=student_record_database;user=root;password=;";
            MySqlConnection con = new MySqlConnection(connection);
于 2015-02-07T11:14:20.797 に答える
0
public bool tryLogin(string username, string password)
{
    MySqlConnection con = new MySqlConnection("SERVER=xx.xx.xx.xx;DATABASE=dbname;UID=user;PASSWORD=password;CheckParameters=False;");
    MySqlCommand cmd = new MySqlCommand("Select * FROM login WHERE user_name = `" + username + "` AND user_pass = `" + password + "`;");
    cmd.Connection = con;
    con.Open();
    MySqlDataReader reader = cmd.ExecuteReader();
    if (reader.Read() != false)
    {
        if (reader.IsDBNull(0) == true)
        {
            cmd.Connection.Close();
            reader.Dispose();
            cmd.Dispose();
            return false;
        }
        else
        {
            cmd.Connection.Close();
            reader.Dispose();
            cmd.Dispose();
            return true;
        }
    }
    else 
    {
        return false;
    }
}
于 2017-08-21T10:51:14.663 に答える
0

サンプルで指定された形式の接続文字列を試してください。

public bool tryLogin(string username, string password)
             {
                 MySqlConnection con = new MySqlConnection("SERVER=localhost;" +
                    "DATABASE=mydatabase;" +
                    "UID=testuser;" +
                    "PASSWORD=testpassword;");
                 MySqlCommand cmd = new MySqlCommand("Select * FROM login WHERE user_name = `" + username + "` AND user_pass = `" + password + "`;");
                 cmd.Connection = con;
                 con.Open();
                 MySqlDataReader reader = cmd.ExecuteReader();
                 if (reader.Read() != false)
                 {
                     if (reader.IsDBNull(0) == true)
                     {
                         cmd.Connection.Close();
                         reader.Dispose();
                         cmd.Dispose();
                         return false;
                     }
                     else
                     {
                         cmd.Connection.Close();
                         reader.Dispose();
                         cmd.Dispose();
                         return true;
                     }
                 }
                 else 
                 {
                     return false;
                 }
             }          
于 2012-05-16T12:46:07.083 に答える