Obecnie próbuję połączyć się z bazą danych na moim hoście lokalnym za pomocą C #, ale nie wiem, czego użyć dla datasource.

Próbowałem już „localhost”, 127.0.0.1 i „(local)”. Naprawdę nie wiem, co robić. Czy ktoś wie, co robić?

Kod:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Database_connection
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string connetionString;
            SqlConnection cnn;

            string dataSource = "127.0.0.1";

            connetionString = "Data Source=" + dataSource + ";Initial Catalog=mydatabase;User ID=root;Password=root";
            cnn = new SqlConnection(connetionString);
            cnn.Open();

            MessageBox.Show("Connection Open  !");
            cnn.Close();
        }
    }
}

Błąd:

System.Data.SqlClient.SqlException: „Podczas nawiązywania połączenia z SQL Server wystąpił błąd związany z siecią lub wystąpieniem. Serwer nie został znaleziony lub nie był dostępny. Sprawdź, czy nazwa instancji jest poprawna i czy SQL Server jest skonfigurowany do zezwalania na połączenia zdalne. (dostawca: dostawca nazwanych potoków, błąd: 40 - nie można otworzyć połączenia z programem SQL Server)

0
syter 8 marzec 2020, 22:01

2 odpowiedzi

Najlepsza odpowiedź

Jeśli masz MySql zainstalowany na komputerze lokalnym, potrzebujesz bibliotek MySql dla NET (AKA Net Connector) i możesz je pobrać stąd:

Pliki do pobrania społeczności MySQL

Po zainstalowaniu bibliotek musisz dodać odwołanie do swojego projektu

Zarządzaj referencjami w projekcie

W tym momencie poinstruujesz swój kod, że chcesz używać klas w przestrzeni nazw dostarczonej przez dodawane biblioteki

using MySql.Data.MySqlClient;

U góry źródła pliku.

Na koniec zmieniasz klasy, aby używały właściwej:

private void button1_Click(object sender, EventArgs e)
{
    string connetionString;
    connetionString = $"Data Source=localhost;Initial Catalog=mydatabase;User ID=root;Password=root";
    using(MySqlConnection cnn = new MySqlConnection(connetionString))
    {
        cnn.Open();
        MessageBox.Show("Connection Open  !");
   }
}
2
Steve 8 marzec 2020, 19:12

W porządku, problem polegał na tym, że użyłem SQL do bazy danych MySql. Zmiana SqlConnection na MySqlConnection działa

0
syter 8 marzec 2020, 19:14