Gå til innhold

Anbefalte innlegg

eg klarer og connecte helt fint til databasen me denne koden

 

	private void cmdTestConnection_Click(object sender, EventArgs e)
	{
		this.Host = txtHost.Text;
		this.User = txtUser.Text;
		this.Pass = txtPass.Text;
		MySqlConnection MyCon = new MySqlConnection("server=" + this.Host + "; user id=" + this.User + "; password=" + this.Pass + "; pooling=false;");
		try
		{
			MyCon.Open();
			MessageBox.Show("MySQL Connection Succeeded", "Success");
		}
		catch (MySqlException ex)
		{
			MessageBox.Show("MySQL Connection Failed! " + ex.Message, "Error");
		}

 

Men når eg pørver og kjøre en INSERT query får eg ikke skrevet over ne til Tablen,

 

Tabel: User har bare 2 rows, ID og usernavn,,, noen som har jobba my me dette som kan forklare hva som er feil?

 

 

private void button1_Click(object sender,System.EventArgs e)
		{
			//Server = myServerAddress; Database = myDataBase; Uid = myUsername; Pwd = myPassword;

			MySqlConnection MyCon = new MySqlConnection("server=***.***.**.***; Database = box_test; user id=NOC; password=******; pooling=false;");
			MyCon.Open();
			MySqlCommand command = new MySqlCommand("INSERT INTO User ('username') VALUE ('test2')", MyCon);
			MyCon.Close();
		}

Lenke til kommentar
Videoannonse
Annonse

løste dette med, men forstår fortsatt ikke hvorfor den førte failet vist noen kan utdype.

 

 

 private void button1_Click(object sender, EventArgs e)
	{
		MySql.Data.MySqlClient.MySqlConnection conn;
		MySql.Data.MySqlClient.MySqlCommand cmd;

		conn = new MySql.Data.MySqlClient.MySqlConnection();
		cmd = new MySql.Data.MySqlClient.MySqlCommand();
		conn.ConnectionString = "Server=**;Uid=NOC;Pwd=**;Database=x_test;";

		try
		{
			conn.Open();
			cmd.Connection = conn;

			cmd.CommandText = "INSERT INTO Bruker(brukernavn) VALUE ('" + textBox1.Text +"')";

			cmd.ExecuteNonQuery();
		}
		catch (MySql.Data.MySqlClient.MySqlException ex)
		{
			MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message,
				"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
		}
	}

Lenke til kommentar

Først og fremst anbefaler jeg å bruke interfaces istedet for å bruke klassene direkte. Dette sparer deg for mye jobb hvis du skal bytte databasemotor i fremtiden (hvis helt teoretisk sett Oracle slutter med MySQL)

 

IDbConnection conn = new MySQLConnection(etc.);

using(var cmd = conn.CreateCommand())
{
 cmd.CommandText = "DROP DATABASE *";
 cmd.ExecuteNonQuery();
}

Lenke til kommentar
Helt umulig å si noe om det før du poster hele feilmeldingen du fikk. Bra at du tok med koden din men når du vil ha hjelp til noe kode som ikke fungerer er du nødt til å legge ved feilmeldingen din og. Ellers blir det mye vanskeligere å hjelpe deg.

fikk aldi noen feilmelding, det var det som var problemet, men fant ut ka eg gjore feil eg glemte ExecuteNonQuery(); :p

Lenke til kommentar

Såvidt jeg kan se, så feilet den første (uten feilmelding) pga at du aldri kalte command.ExecuteNonQuery();

Såfremt du ikke kaller ExecuteQuery (for spørringer) eller ExecuteNonQuery (for INSERT, UPDATE, DELETE) så vil ikke noe kall mot databasen bli utført.

 

/ronny

 

[Edit:] Doh, fatter ikke at jeg ikke så den siste posten :xmas:

Endret av [ronny]
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å
×
×
  • Opprett ny...