The below Query works in HeidiSQL but gives me an error when trying to use it in C#
SELECT title.id,title.title,title.production_year,movie_info.info FROM title NATURAL JOIN movie_info WHERE title.id <= 1000;
It tells me the following:
I use the following code to retrieve a MySqlDataReader
object:
public override MySqlDataReader Retrieve(string sql)
{
MySqlCommand cmd = new MySqlCommand(sql, GetConnection());
return cmd.ExecuteReader();
}
I call it from my main method:
static void Main(string[] args)
{
MySQLFacade facade = new MySQLFacade("127.0.0.1", "omitted", "omitted", "imdb");
MySqlDataReader reader = facade.Retrieve(
"SELECT title.id,title.title,title.production_year,movie_info.info" +
"FROM title " +
"NATURAL JOIN movie_info" +
" WHERE title.id <= 1000;");
using (reader)
{
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
Console.WriteLine(reader.GetValue(i));
}
Console.WriteLine();
}
}
Console.ReadLine();
}
Am I possibly missing something about formatting an SQL string for usage in C# compared to a Database Manager?
There's a space missing before FROM
:
MySqlDataReader reader = facade.Retrieve(
"SELECT title.id,title.title,title.production_year,movie_info.info" + // <-- here
"FROM title " +
"NATURAL JOIN movie_info" +
" WHERE title.id <= 1000;");
In your answer, you have put all into one line and you have added the missing space.