07. december 2007 - 08:34Der er
9 kommentarer og 1 løsning
Spørgsmål ang. sql statement og parametere
Hej. Jeg har en metode der returnere et dataset. Når jeg gør kalder metoden således, så fungerer det fint.
foreach (DataRow dr in getMySqlDataSet("SELECT * FROM shift where start = ?start", new MySqlParameter("?start", "2007-12-04 07:00:00"), "shift").Tables[0].Rows) { Debug.WriteLine("Output " + dr["end"]); } Så returnere den række som passer på datoen.
Men ser min parameter således ud, så kommer der ikke noget. Hvordan kan det være? 2007-12-04 07:00:00 BETWEEN 2007-12-07 07:00:00
Har prøvet at ændre lidt med i den parameter, men desværre uden held
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Er det ikke et array jeg skal bruge, da det skal indeholde flere værdier? Eller skal jeg have 2 MySqlParameters argumenter i min getMySqlDataSet metode? Jeg skal jo både have en ?start og en ?end dato
Kan stadig ikke få det til at virke. Nu har jeg lavet det om til 2 datetime argumenter. Men får denne exception
#42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= '2007-12-10 00:00:00' AND '2007-12-16 00:00:00'' at line 1
Således ser min getMySqlDataSet ud
private static DataSet getMySqlDataSet(string sql, DateTime first, DateTime second, string table) { DataSet ds = new DataSet(); using (MySqlConnection con = new MySqlConnection("server=localhost;uid=root;pwd=xxx;database=p1;")) { MySqlDataAdapter da = new MySqlDataAdapter(); MySqlCommand cmd = new MySqlCommand(sql, con); cmd.Parameters.Add("?start", first); cmd.Parameters.Add("?end", second); da.SelectCommand = cmd; da.Fill(ds, table); return ds; } }
Og her kalder jeg så metoden
foreach (DataRow dr in getMySqlDataSet("SELECT * FROM shift where start BETWEEN = ?start AND ?end", start_date,end_date, "shift").Tables[0].Rows) { Debug.WriteLine("Output " + dr["end"]); }
Har fundet fejlen. Har bare lige glemt at fjerne det = i min sql statement. DOH..!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.