Archief - [PROG][C#] .NET en MySql

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

SMa

Legacy Member
Om een verbinding te leggen tussen een C# app en een MySql-database gebruik ik volgende code:
Code:
using System.Data;
using System.Data.OleDb;
...
System.Data.OleDb.OleDbConnection con;
con=new System.Data.OleDb.OleDbConnection();
con.ConnectionString="Provider=MySQLProv;Data Source=mysql;";
try
{
	con.Open();
	if (con.State==ConnectionState.Open) MessageBox.Show("Connection to MySQL opened through OLE DB Provider");
	con.Close();
}
catch(Exception ex)
{
	MessageBox.Show(ex.Message);
}
Maar bij het uitvoeren wordt met deze exceptie gegooid:
"De MySQLProv-provider is niet geregistreerd op de lokale computer."

Volgens mij heb ik enkel het volgende nodig:
[check] Visual C#.
[check] MySQL Server installed [mijn versie: 5.0.51a]
[check] MySQL OLEDB Provider installed => probleem...
poging met deze: http://dev.mysql.com/get/Downloads/Win32/MyOLEDB3.exe/from/pick
en poging met deze: http://dev.mysql.com/downloads/connector/net/5.2.html

Kan iemand een werkende (gratis) provider aanraden? Of doe ik iets fout in mijn code?
Ik heb me er al ziek naar gegoogled, maar blijkbaar is het de gewoonte dat enkel MS SQL gebruikt wordt in combinatie met C#...

SMa

Legacy Member
Blijkbaar zit het in die connection string, ik heb er geen idee van door wat ik MySQLProv moet vervangen...

Albireo

Legacy Member
een connectionstring voor MySQL ziet er ongeveer zo uit: "Server=127.0.0.1;Uid=root;Pwd=12345;Database=test;"

Bovendien gebruik je niet OleDbConnection maar MySql.Data.MySqlClient.MySqlConnection voor MySQL

zie MySQL Connector/NET manual

SMa

Legacy Member
thx! ;)

Ik had ondertussen al dit stukje code gevonden in de help-bestanden
Code:
public void InsertRow(string myConnectionString)
{
          // If the connection string is null, use a default.
          if(myConnectionString == "")
          {
                    myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass";
          }
          MySqlConnection myConnection = new MySqlConnection(myConnectionString);
          string myInsertQuery = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)";
          MySqlCommand myCommand = new MySqlCommand(myInsertQuery);
          myCommand.Connection = myConnection;
          myConnection.Open();
          myCommand.ExecuteNonQuery();
          myCommand.Connection.Close();
}
En ik had ook nog de MySql.Data.dll als reference nodig.
Nu lukt het :niceone:

Allemaal vrij eenvoudig eigenlijk, al vind ik het wel niet al te duidelijk gedocumenteerd op mysql.com :unsure:
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan