Zum Inhalt springen

C# auf InternetSql DB


swonson

Empfohlene Beiträge

Guten Abend Freunde,

ich habe folgendes Problem, ich möchte ein Programmschreiben, welches biliebige Daten in eine SQL Datenbank schreibt, welche auf meinem Rootserver liegt. Heißt, mein Program soll Daten über eine Internetverbindung in eine Datenbank eintragen.

Ich habe es so versucht:


            SqlConnection con = new SqlConnection();

            con.ConnectionString = "Data Source=www.domain.de;" +

                                   "Initial Catalog=DM-Name;" +

                                   "User ID=user;" +

                                   "Password=pw";


            // SQL-Befehl 

            string strSQL =

               "INSERT INTO test(Feld1, Feld2) " +

               "VALUES('Test1','Test2')";


                con.Open();

                SqlCommand cmd = new SqlCommand(strSQL, con);

                // Kommando absetzen 

                cmd.ExecuteNonQuery();


            con.Close(); 

Er sagt mir immer Server existiert nicht oder zugriff verweigert. Ich kenne die seite connectionstrings bereit, weiss allerdings nicht wirklich welchen ich benutzen soll. Kann mir jemand weiter helfen, wie ich dieses Problem zu lösen habe oder vielleicht irgendwelche wirklich hilfreichen seiten. Ich hab bei google nicht gefunden, was mit einem Internetsqlserver funktioniert.

Ich danke euch für eure Hilfe.

gruß der swonson

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab bei google nicht gefunden, was mit einem Internetsqlserver funktioniert.
Vermutlich, weil der Begriff "Internetsqlserver" totaler Käse ist.

Was für ein DBMS ist es denn?

Und ist dein Server überhaupt so eingerichtet, dass die Datenbank direkt von außen erreichbar ist? Das wäre eher ungewöhnlich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Guten Morgen Klotzkopp,

natürlich habe ich diese äußerst fragwürdige Wort nicht bei der googlesuche verwendet. Dein Einwand ist berächtigt und ich muss ehrlich gestehen ich weiss es nicht.

Weisst du, wie ich die von dir "verlangten" Informationen erhalte?

grüße der Swonson

Link zu diesem Kommentar
Auf anderen Seiten teilen

.... hilft das? MySQL version 5.0.45...

---

Ich habe es jetzt mal mit einer ip und den port zum server versucht, da kommt folgendes, vielleicht ist es ja hilfreich..

Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: SQL-Netzwerkschnittstellen, error: 25 - Verbindungszeichenfolge ungültig)
Bearbeitet von swonson
Link zu diesem Kommentar
Auf anderen Seiten teilen

MySQL version 5.0.45...

Das ist schon mal besser als "Internet SQL" ;)

Die entscheidende Frage ist aber immer noch, ob der MySQL-Server überhaupt von außen erreichbar ist. Üblicherweise will man genau das nämlich aus Sicherheitsgründen verhindern.

Bist du der Administrator dieses Servers? Falls nein, sprich das bitte mit dem Admin ab.

Und selbst wenn du den Server so konfigurierst, dass er von außen erreichbar ist, brauchst du wohl noch den hier: MySQL :: Download Connector/Net. Aber wie gesagt, die Erreichbarkeitsfrage ist die entscheidende.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja der Server gehört mir. Ist die Sicherheit wirklich so gefährdet, durch diese erlaubnis?

Okay vielleicht hast du ja eine andere wie ich das lösen kann. Ich will ein Program schreiben, welches auf einem Server läuft (dort werden alle Prozesse laufen). Dieses Program soll aber eben so ein Webinterface haben worüber man es steuern kann... Daher auch die idee, das beide "Zugriffmöglichkeiten: Webinterface und Desktop" die gleiche db haben und sie folglich im Internet liegen sollte.

Hast du dazu vielleicht eine andere idee, die mein Problem lösen könnte.

In meinen Rootservereintsellungen steht als host zwar immer localhost, aber bei dem Punkt Zugriff ist "alles hosts" ausgewählt... kann das schonmal das richtige sein ?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja der Server gehört mir. Ist die Sicherheit wirklich so gefährdet, durch diese erlaubnis?
Du öffnest dadurch die komplette Funktionalität des DBMS nach außen (z.B. Tabellen löschen, Benutzerrechte ändern), und dein einziger Schutz sind Benutzername und Passwort.

Wenn du nur lokale Zugriffe über eine Anwendung auf dem Server erlaubst, kannst du eine definierte Schnittstelle schaffen und nur das erlauben, was für den Betrieb notwendig ist.

Okay vielleicht hast du ja eine andere wie ich das lösen kann. Ich will ein Program schreiben, welches auf einem Server läuft (dort werden alle Prozesse laufen). Dieses Program soll aber eben so ein Webinterface haben worüber man es steuern kann... Daher auch die idee, das beide "Zugriffmöglichkeiten: Webinterface und Desktop"
Das verstehe ich nicht. Was meinst du mit "Desktop"? Wenn das Programm auf dem Server läuft, greift es nicht über das Internet zu.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay ich erkläre das mal.

Ich möchte ein eProgrammschreiben, welches bei mir zuhause auf meinem Computer läuft. Soll Datenverwalten. Nun möchte ich dieses Program, welches bei mir zuhasue auf dem Pc läuft über ein Webinterface steuern. Da das Program auf meinem Rechner läuft und die Webseite auf meinem Rootserver, brauchen sie ja eine gemeinsame DB... meine Idee war es, eine DB auf meinem Rootserver zu erstellen... Damit muss das Orgram ja per ip auf diese DB zu greifen..

Ich habe den Connector installiert... aber der Zugriff geht noch immer nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

so es geht... mein DB server hat diese einstellung für den Remotezugriff die ganze zeit gehabt, leider habe ich noob nicht an die Firewall gedacht...

Danke für den Tipp mit dem Connector... war aufjedenfall super. Ich werde jetzt mal weiter sehen, ob ich irgendetwas nicht hinbekommen, was das SELECT statement angeht...

danke nochmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja ne Datenbank nur lokal laufen zu lassen ist evtl für Testzwecke nützlich, aber in der Regel nutzt man ja so ein Konstrukt um von überall aus Daten abrufen zu können.

Was aufjedenfall empfehlenswert ist, sofern du die SQL Instanz übers öffentliche Netz laufen lassen willst:

--> Ändern des Listener Ports (Standart ist gefährlich (ist ja Public))

--> Standartuser löschen (bei mysql wäre das AFAIK root)

Zu den Verbindungsproblemen:

Wenn du per C Sharp drauf zugreifen möchstest, empfehle ich dir das über ODBC abzuwickeln.

Treiber gibts hier !

Und das wäre dann der Connectionstring in C Sharp und als beispiel ein simpler Select Befehl:



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 System.Data.Odbc;

namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        private OdbcConnection con = new

        OdbcConnection("Server=myServerAddress(IP);Database=myDataBase(DBName);Uid=myUsername;Pwd=myPassword;");


        public Form1()

        {

            InitializeComponent();

        }


        private void button1_Click(object sender, EventArgs e)

        {

           OdbcCommand cmd = new OdbcCommand();

           cmd.Connection = con;

           cmd.CommandText = "SELECT * From [Table]";

           DataTable dt = new DataTable();

           OdbcDataAdapter ada = new OdbcDataAdapter(cmd);

           ada.Fill(dt);


        }

    }

}



Lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ganz einfach, weil der MySQL Connector, welchen du installiert hast, nichts weiter ist als ein ODBC Treiber.

Dieser beschreibt die jeweiligen Zugriffsverfahren, etc. auf das DBMS.

Wenn du wissen willst, welche ODBC Treiber bereits auf deinem Rechner installiert sind, kannst du das unter:

Systemsteuerung -> Verwaltung -> Datenquellen(ODBC)

Und dann auf die Registerkarte Treiber.

Lg

Gateway

PS:

Es gibt viele ODBC Treiber für alle möglichen Datentypen (bsp. *.csv, etc.) sowie DBMS , welche dem Entwickler Zugriffe und Abfragen wesentlich erleichtern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...