I'm trying to execute an insert query where I do a select and select the records where userId is in the userIds I pass in.
This works in the query editor:
INSERT INTO Table1(DisciplineId, UserId) (SELECT 1, UserId FROM Users WHERE UserId IN (1,2))
This does not work in the query editor and gives the same error that I get in code:
INSERT INTO Table1(DisciplineId, UserId) (SELECT 1, UserId FROM Users WHERE UserId IN ('1,2'))
This is the error:
Truncated incorrect DOUBLE value: '1,2'"
How can I change my code to get the query that works?
My code:
long recordsAffected = 0;
String connectionString = ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connectionString);
String sql = "INSERT INTO facilitators (DisciplineId, UserId)"
+ " (SELECT ?disciplineId, UserId FROM Users"
+ " WHERE UserId IN (?facilitators))";
try
{
using (conn)
{
conn.Open();
using (MySqlCommand cmd = new MySqlCommand(sql, conn))
{
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.AddWithValue("?disciplineId", disciplineId);
cmd.Parameters["?disciplineId"].Direction = System.Data.ParameterDirection.Input;
cmd.Parameters.AddWithValue("?facilitators", facilitators);
cmd.Parameters["?facilitators"].Direction = System.Data.ParameterDirection.Input;
recordsAffected = cmd.ExecuteNonQuery();
}
}
return recordsAffected;
}
This works in the query editor:
INSERT INTO Table1(DisciplineId, UserId) (SELECT 1, UserId FROM Users WHERE UserId IN (1,2))
This does not work in the query editor and gives the same error that I get in code:
INSERT INTO Table1(DisciplineId, UserId) (SELECT 1, UserId FROM Users WHERE UserId IN ('1,2'))
This is the error:
Truncated incorrect DOUBLE value: '1,2'"
How can I change my code to get the query that works?
My code:
long recordsAffected = 0;
String connectionString = ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connectionString);
String sql = "INSERT INTO facilitators (DisciplineId, UserId)"
+ " (SELECT ?disciplineId, UserId FROM Users"
+ " WHERE UserId IN (?facilitators))";
try
{
using (conn)
{
conn.Open();
using (MySqlCommand cmd = new MySqlCommand(sql, conn))
{
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.AddWithValue("?disciplineId", disciplineId);
cmd.Parameters["?disciplineId"].Direction = System.Data.ParameterDirection.Input;
cmd.Parameters.AddWithValue("?facilitators", facilitators);
cmd.Parameters["?facilitators"].Direction = System.Data.ParameterDirection.Input;
recordsAffected = cmd.ExecuteNonQuery();
}
}
return recordsAffected;
}