Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Mysql-Parameter übergabe Problem


aknet - Di 22.07.08 18:57
Titel: Mysql-Parameter übergabe Problem
Hallo,

ich habe nicht genau gewusst was für einen Title ich nehmen soll, hoffe ihr verzeit.

ich schaffe es irgendwie nicht einen funktionierenden sql-string zusammen zu bauen.
alles (verbindung zur datenbank, ein test sql-sting mit fixen & vorhandenen werten) Funktioniert außer eben das mit den Parametern.

hier mal der gekürtzte und leicht veränderte Code:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
using MySql.Data.MySqlClient;

MySqlConnection conn = new MySqlConnection("MeinConnectionString")

conn.Open();

string sql = "SELECT id FROM tabelle WHERE (dies = '@par1')  AND (das = '@par2')";

MySqlCommand cmd = new MySqlCommand(sql, conn);

cmd.Parameters.Add("@par1", MySqlDbType.VarChar, 15);
cmd.Parameters["@par1"].Value = "Parameter1";
cmd.Parameters.Add("@par2", MySqlDbType.VarChar, 30);
cmd.Parameters["@par2"].Value = "Parameter2";

string id = cmd.ExecuteScalar().ToString();

conn.Close();


ich hoffe mal ihr habt versanden was ich seit Stunden versuche und nicht schaffe.

lg
aknet


Christian S. - Di 22.07.08 19:02

Hallo und :welcome:!

Versuch mal "?" anstatt "@" bei den Parametern.

Grüße
Christian

//edit: Ach ja, und die Anführungszeichen um die Parameter im SQL-String müssen weg.


aknet - Di 22.07.08 19:28

hallo Christian S.,

vielen dank!
dank deiner hilfe hat es nun entlich geklappt :)

musste die @ in ? umschreiben und die ' rausmachen, komisch nur das als ich das mal mit ms-sql gemacht habe das, glaub ich, genau anders rum war...

nochmals dankeschön :flehan:
lg
aknet


JüTho - Do 24.07.08 12:58

Zur Erklärung: Die Anführungszeichen bei Parametern setzt der DbProvider automatisch, sofern sie benötigt werden; das ist einer der Vorteile von Parametern. (Das ist bei MS-SQL sicher genauso, nur das Sonderzeichen macht jeder anders.)

Jürgen