PDA

View Full Version : SQL LIKE Conversion Error



sbuescher
12-02-07, 20:22
Hallo zusammen,

ich habe folgendes Problem wenn ich versuche per .NET ADO idb2 connection eine SQL Query mit LIKE Statement abzusetzen bekomme ich eine Cconversion Error Meldung zurück, auf der AS/400 klappt der Select ohne Probs.

Hier der QuellCode :


iDB2Connection cn = new iDB2Connection("DataSource=A1402P1; UserID=xxxxxxx; Password=xxxxxxx; ConnectionTimeout=300;");

iDB2Command selectCommand = new iDB2Command("SELECT * FROM D059AA.Tiopkg " +
"WHERE pkg_tck_nr LIKE @val1");

selectCommand.CommandTimeout = 50;
iDB2DataAdapter da = new iDB2DataAdapter(selectCommand);
iDB2Parameter parm1 = new iDB2Parameter();
parm1.ParameterName = "@val1";
parm1.iDB2DbType = iDB2DbType.iDB2VarChar;
parm1.Value = "1Z_____________650%";


da.SelectCommand.Parameters.Add(parm1);
da.SelectCommand.Connection = cn;
cn.Open();

DataSet ds = new DataSet();

da.Fill(ds);


Das liefert mir immer einen Conversion Error zurück.
Programiersprache c#.NET#

Weis jemand rat? Ich bin am verzweifeln.

Fuerchau
13-02-07, 10:01
Parameter müssen mit "?" angegeben werden:

"WHERE pkg_tck_nr LIKE ?"

Für jedes "?" ist dann eine Parameterobjekt zu definieren.

sbuescher
13-02-07, 19:30
Hallo Fuerchau,

danke schomal für die schnelle Antwort hab das zwar mal ausprobiert aber mit dem selben Ergebnis lt. IBM kann bei .NET auch naming parameters verwendet werden. Dieser Fehler tritt auch nur auf wenn ich das % übergebe _ funktioniert ohne probleme. Vielleicht noch eine Idee woran es liegen könnte? Es muss doch möglich sein ein LIKE per idb2 zu schicken.

Gruß Sascha