verwendetes Datenbanksystem: MySQL via Ubuntu Server
Hallo Community,
ich habe ein Problem.
Ich arbeite mit Visual Studio 2017 mit dem habe ich auch Zugriff auf meine Datenbank die auf einer VM liegt. Sobald ich das Programm aber starte und meine Logindaten eingebe die in der Datenbank vorhanden sind kommt eine Fehlermeldung.
ich hoffe ihr könnt mir helfen ich bin am verzweifeln.
Gruß PoiPoi
Hat Dein MySQL-Benutzer die Berechtigung, sich von Remote anzumelden?
Wer ordentlichen Code schreibt, lebt entspannter 8)
Irgendwie klingt die Fehlermeldung so, als wenn Dein Programm versucht, über die Ports des MS SQL Server auf die Datenbank zu zugreifen, was ja nicht funktionieren kann.
Wer ordentlichen Code schreibt, lebt entspannter 8)
Du sagst du benutzt MySql, deine Software benutzt aber eindeutig den SqlClient, der für den MS Sql Server zuständig ist
Das hier sollte weiter helfen: C# SqlConnection can't connect
Wer ordentlichen Code schreibt, lebt entspannter 8)
Deine DB ist MySQL, aber im Code setzt du MSSQL-Component zum Lesen ein, daher geht es nicht.
**:::
Die DLL habe ich schon drin.
Denn zweiten Link werde ich mir genauer mal durchlesen ... Learning by doing 😃
Danke für die schnelle Hilfe ich lass es wissen wenn es geht 😃
Bitte keine Full quotes. [Hinweis] Wie poste ich richtig?
Hi ich weiß nicht ob meine frage hier noch reinpasst aber habe es so gemacht wie in dem Link beschrieben.
Nun kriege ich aber einen neuen Fehler (siehe Foto).
Hier der Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Online_Flight_World
{
public partial class frmLogin : Form
{
public frmLogin()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;
myConnectionString = "server=XXX;uid=XXX;" +
"pwd=XXX;database=XXX;";
SqlCommand com = new SqlCommand("SELECT * FROM ofw_user WHERE username=@user password=@pw ");
try
{
conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString);
conn.Open();
com.Parameters.AddWithValue("@user", user_textbox.Text);
com.Parameters.AddWithValue("@pw", password_textbox.Text);
SqlDataReader Dr = com.ExecuteReader();
if (Dr.HasRows == true)
{
MessageBox.Show("Eingeloggt!");
frmMain f2 = new frmMain();
f2.Show();
}
else
{
MessageBox.Show("Bitte überprüfen sie ihre Eingaben!!!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
Bitte Fehler in die Tags packen und nicht als Foto
[Hinweis] Wie poste ich richtig?
Und fehler einfach auch mal im Forum oder in Google suchen
Die ConnectionString-Eigenschaft wurde nicht initialisiert.
Hinweis: Du musst erst eine Connection öffnen, dann den Command erstellen, dem Du den Connection String als Parameter mitgeben musst.
Du erstellt den Command vor der Verbindung.
Und Du verwendest immer noch die falschen Klassen an den jeweils wichtigen Stellen.
Deine Verbindung ist nun zwar für MySql, Dein Command aber immer noch Mssql.
Und dann noch allgemein:
es ist sehr unhübsch Datenbank Code in die UI zu packen. Macht früher oder später massive Probleme.
[Artikel] Drei-Schichten-Architektur
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code