Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

using System;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using MySql.Data.Types;
using System.Drawing;
using System.Windows.Forms;

class DisconnectedDataForm : Form
{
   private MySqlDataAdapter daCustomers;
   private DataSet dsCustomers;
   private DataGrid dgCustomers;
   private const string TableName = "Customers";

   public DisconnectedDataForm()
   {
       InitData();
 
       this.SetBounds(100,100,
                      (Screen.GetWorkingArea(this).Width / 3),
                      (Screen.GetWorkingArea(this).Height / 2));

       dgCustomers = new DataGrid();
       dgCustomers.Location = new Point(5, 5);
       dgCustomers.Size = new Size(
            this.ClientRectangle.Size.Width - 10,
            this.ClientRectangle.Height - 50);
       dgCustomers.DataSource = dsCustomers;
       dgCustomers.DataMember = TableName;

       Button btnUpdate = new Button();
       btnUpdate.Text = "Update";
       btnUpdate.Location = new Point(
       this.ClientRectangle.Width / 2 - btnUpdate.Width / 2,
       this.ClientRectangle.Height - (btnUpdate.Height + 10));
       btnUpdate.Click += new EventHandler(btnUpdateClicked);

       Controls.AddRange(new Control[] { dgCustomers, btnUpdate });
   }

   public void InitData()
   {
   	try
   	{
 	MySqlConnection conn = new MySqlConnection("server=192.168.1.199;uid=*****;" +
       "pwd=*****;database=csharp;");
     conn.Open();

        dsCustomers = new DataSet();

        daCustomers = new MySqlDataAdapter("select * FROM csharp", conn);

        daCustomers.Fill(dsCustomers, TableName);
   	}
   	catch(Exception e)
   	{
     MessageBox.Show(e.Message);
   	}
   }

   public void btnUpdateClicked(object sender, EventArgs e)
   {
   	try
   	{
        daCustomers.Update(dsCustomers, TableName);
   	}
   	catch(Exception ex)
   	{
     MessageBox.Show(ex.Message);
   	}
   }

   static void Main()
   {
       Application.Run(new DisconnectedDataForm());
   }
}

Og alt funker fint når jeg kjører programmet fra databaseserveren

Lenke til kommentar

Hvilken versjon av MySQL? I nyere versjoner vet jeg at man kan overstyre hvorvidt det er lov å akseptere tilkoblinger fra eksterne noder. Prøv å kjøre den "instance config"-saken eller hva den nå hette. Sjekk også at brukernavnet du bruker har slike privilegier at den kan brukes fra eksterne noder.

Lenke til kommentar

nei, såvidt jeg kan se er det ingen problemer med rettigheter på brukeren i databasen, aner ikke hva den "instance config"-saken er, og ble ikke stort klokere av å google det. Feilmeldingen er faktisk ikke den samme fra en annen maskin i nettverket. husker ikke hva den var nå, skal redigere innlegget når jeg har tid til å sjekke det nærmere.

 

EDIT: sannsynligvis var feilmeldingen på den andre maskinen fordi dataen ikke var satt opp i samme arbeidsgruppe som serveren, feilmeldingen på denne maskinen var den samme som jeg fikk på servermaskinen når MySQL var nede. noe med sending/recieveing data was disallowed because of ettellerannet socket-greier.

Endret av hockey500
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...