MySqlCommand MailCommand = new MySqlCommand("SELECT onderwerp FROM wm_Email WHERE projectnummer = '"+ nummer +"' AND onderwerp LIKE %@subject% LIMIT 1", connection);
MailCommand.Parameters.AddWithValue("@subject", msg.Subject);
MessageBox.Show(MailCommand.CommandText);
sqlReader = MailCommand.ExecuteReader();
while (sqlReader.Read())
{
MessageBox.Show(sqlReader.GetValue(0).ToString());
update = new MySqlCommand("UPDATE wm_Email SET msgfile = '" + System.IO.Path.GetFileName(fileName) + "' WHERE projectnummer = '" + nummer + "' AND onderwerp = '" + sqlReader.GetValue(0).ToString() + "'", connection);
update.ExecuteNonQuery();
}
sqlReader.Close();
MySqlCommand MailCommand =new MySqlCommand("SELECT onderwerp FROM wm_Email WHERE projectnummer = '"+ nummer +"' AND onderwerp LIKE %@subject% LIMIT 1", connection);
update =new MySqlCommand("UPDATE wm_Email SET msgfile = '"+System.IO.Path.GetFileName(fileName)+"' WHERE projectnummer = '"+ nummer +"' AND onderwerp = '"+ sqlReader.GetValue(0).ToString()+"'", connection);
Geef je UPDATE-query eens weer in een MessageBox om te zien hoe die er uitziet. Ik zie niet direct iets verkeerd. Wordt je onderwerp goed opgehaald? Ik zie nergens een declaratie van de 'update'-variabele?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's.%' AND msgfile = '' LIMIT 1' at line 1 | bij MySql.Data.MySqlClient.MySqlStream.OpenPacket()
bij MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId)
bij MySql.Data.MySqlClient.MySqlDataReader.GetResultSet()
bij MySql.Data.MySqlClient.MySqlDataReader.NextResult()
bij MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
bij MySql.Data.MySqlClient.MySqlCommand.ExecuteScalar()
bij readMsgFiles.Form1.updateEmails() in C:Documents and SettingsdaveVisual Studio 2008ProjectsreadMsgFilesreadMsgFilesForm1.cs:regel 91
Heb methode ook iets aangepast, dit is wat ik nu heb:
connection =new MySqlConnection("Database=db; Data Source=localhost; User Id='root'; Password=''");
connection.Open();
if(connection.State== ConnectionState.Open)
{
}
else
{
MessageBox.Show("FALSE");
}
if(fileName.EndsWith(".msg"))
{
MapiMessage msg = MapiMessage.FromFile(fileName);
if(msg.Subject!=String.Empty)
{
MySqlCommand cmd =new MySqlCommand("SELECT onderwerp FROM wm_Email WHERE projectnummer = '"+ nummer +"' AND onderwerp LIKE '%"+ msg.Subject+"%' AND msgfile = '' LIMIT 1", connection);
MySqlCommand cmd = new MySqlCommand("SELECT onderwerp FROM wm_Email WHERE projectnummer = '" + nummer + "' AND onderwerp LIKE '%@subject%' AND msgfile = '' LIMIT 1", connection);
MySqlCommand cmd =new MySqlCommand("SELECT onderwerp FROM wm_Email WHERE projectnummer = '"+ nummer +"' AND onderwerp LIKE '%@subject%' AND msgfile = '' LIMIT 1", connection);
Ah ik had hem wel gebruikt, maar toen wat anders geprobeerd (wat ook niet werkt). Ik had het dus al zoals jij nu zegt Titjes, werkt ook niet. Ik krijg deze query terug.
Citaat:
SELECT onderwerp FROM wm_Email WHERE projectnummer = '82-1000' AND onderwerp LIKE '%@subject%' AND msgfile = '' LIMIT 1
@Marten, waar toString() want alles is al een string of ik gebruik al toString(). Zover ik zie iig
Klopt, maar in de query die jij gaf paar posts terug had je wel quotes en die had ik ook geprobeerd, maar werkte niet. Totale script dat ik op dit moment heb:
connection =new MySqlConnection("Database=dijkhuis; Data Source=localhost; User Id='root'; Password=''");
connection.Open();
if(connection.State== ConnectionState.Open)
{
}
else
{
MessageBox.Show("FALSE");
}
if(fileName.EndsWith(".msg"))
{
MapiMessage msg = MapiMessage.FromFile(fileName);
if(msg.Subject!=String.Empty)
{
MySqlCommand cmd =new MySqlCommand("SELECT onderwerp FROM wm_Email WHERE projectnummer = '"+ nummer +"' AND onderwerp LIKE '%@subject%' AND msgfile = '' LIMIT 1", connection);