Здавствуйте друзья,
Проблема: Запись из списка в MySql с проверкой если запись существует, цикл for проходит ровно 50% списка и выходит без ошибки.
Если в списке 20 сначений проходит 10, если 10 толко 5..., если 2 только 1.
подскажите с чем может быть связанно, и как проити весь список разом.
заранее премного благодарен.
Проблема: Запись из списка в MySql с проверкой если запись существует, цикл for проходит ровно 50% списка и выходит без ошибки.
Если в списке 20 сначений проходит 10, если 10 толко 5..., если 2 только 1.
подскажите с чем может быть связанно, и как проити весь список разом.
заранее премного благодарен.
Код:
var links_list = project.Lists["topic_links"];
var result = String.Empty;
var command = new MySql.Data .MySqlClient.MySqlCommand();
var connectionString = "server=localhost;user=root;database=admin;port=3306;password=root;persistsecurityinfo=True;characterset=utf8;";
try{
command.Connection = new MySql.Data.MySqlClient.MySqlConnection(connectionString);
}
catch (Exception e)
{
result= "Mysql ошибка подключения";
}
if (links_list==null)
{
return "list is epty";
}
try
{
command.Connection.Open();
string category_id = project.Variables["category_id"].Value;
for(int i=0; i < links_list.Count; i++){
string link = links_list[i];//list item
string request = "INSERT INTO wp_parser_links(link, category_id) SELECT * FROM (SELECT @link, @category_id) AS tmp WHERE NOT EXISTS (SELECT link FROM wp_parser_links WHERE link = @link) LIMIT 1;"; //запись если значения не существует
MySql.Data.MySqlClient.MySqlCommand com = new MySql.Data.MySqlClient.MySqlCommand(request, command.Connection);
com.Parameters.AddWithValue("@link", link);
com.Parameters.AddWithValue("@category_id", category_id);
com.ExecuteNonQuery();
links_list.RemoveAt(i);
}
}
catch (MySql.Data.MySqlClient.MySqlException e)
{
result = "Mysql Ошибка "+e.Message;
}
finally
{
command.Connection.Close();
}
return links_list.Count;