С# запись в Базу Данных

rus5665

Новичок
Регистрация
12.10.2016
Сообщения
10
Благодарностей
3
Баллы
3
Не могу понять почему не записываются данные в БД из переменных
Если пишу в код сами значения, то в БД данные пишутся

"UPDATE wp_zp_orders SET ship_to_name ='Значение' WHERE number = 'Значение'";
Сам код
Код:
var result = String.Empty;

var command = new MySql.Data.MySqlClient.MySqlCommand();

var connectionSTring = "server=серве;user=юзер;database=названиеБД;password=пароль;";

try {
        command.Connection = new MySql.Data.MySqlClient.MySqlConnection(connectionSTring);
    }

catch (Exception e) {
                      result = "MySQL ошибка подключения";
                    }

if (result!=String.Empty){
                            return result;
                          }



try {
      command.Connection.Open();
      string request = "UPDATE wp_zp_orders SET ship_to_name ='@ship_to_name' WHERE number = '@number'";
      MySql.Data.MySqlClient.MySqlCommand com = new MySql.Data.MySqlClient.MySqlCommand (request, command.Connection);
      string number = project.Variables ["number"].Value; 
      string ship_to_name = project.Variables ["ship_to_name"].Value;
      com.Parameters.AddWithValue ("@number", number);
      com.Parameters.AddWithValue ("@ship_to_name", ship_to_name);
      com.ExecuteNonQuery();
    }

catch (MySql.Data.MySqlClient.MySqlException e) {
                                                    result = "MySql ошибка"+e.Message;
                                                }
finally {
            command.Connection.Close();
        }

return result;
 

dio-dev

Client
Регистрация
05.11.2018
Сообщения
149
Благодарностей
54
Баллы
28
Попробуй не через параметры а напрямую переменные вставить project.Variables ["ship_to_name"].Value
 

rus5665

Новичок
Регистрация
12.10.2016
Сообщения
10
Благодарностей
3
Баллы
3
Выдает ошибку, подскажите, пожалуйста, как вставлять?
 

dio-dev

Client
Регистрация
05.11.2018
Сообщения
149
Благодарностей
54
Баллы
28
string request = "UPDATE wp_zp_orders SET ship_to_name ="+project.Variables["ship_to_name"].Value+" WHERE number = "+Convert.ToInt32(project.Variables["number"].Value)+";";
 

rus5665

Новичок
Регистрация
12.10.2016
Сообщения
10
Благодарностей
3
Баллы
3
Спасибо большое, помогло
только добавил одинарные кавычки
Код:
string request = "UPDATE wp_zp_orders SET ship_to_name = '"+project.Variables["ship_to_name"].Value+"' WHERE number = '"+project.Variables["number"].Value+"';";
 

смм24

Client
Регистрация
05.07.2017
Сообщения
76
Благодарностей
10
Баллы
8
Не могу понять почему не записываются данные в БД из переменных
Если пишу в код сами значения, то в БД данные пишутся



Сам код
Код:
var result = String.Empty;

var command = new MySql.Data.MySqlClient.MySqlCommand();

var connectionSTring = "server=серве;user=юзер;database=названиеБД;password=пароль;";

try {
        command.Connection = new MySql.Data.MySqlClient.MySqlConnection(connectionSTring);
    }

catch (Exception e) {
                      result = "MySQL ошибка подключения";
                    }

if (result!=String.Empty){
                            return result;
                          }



try {
      command.Connection.Open();
      string request = "UPDATE wp_zp_orders SET ship_to_name ='@ship_to_name' WHERE number = '@number'";
      MySql.Data.MySqlClient.MySqlCommand com = new MySql.Data.MySqlClient.MySqlCommand (request, command.Connection);
      string number = project.Variables ["number"].Value;
      string ship_to_name = project.Variables ["ship_to_name"].Value;
      com.Parameters.AddWithValue ("@number", number);
      com.Parameters.AddWithValue ("@ship_to_name", ship_to_name);
      com.ExecuteNonQuery();
    }

catch (MySql.Data.MySqlClient.MySqlException e) {
                                                    result = "MySql ошибка"+e.Message;
                                                }
finally {
            command.Connection.Close();
        }

return result;
Кто так пишет, зачем так усложнять. Когда начинал наткнулся на подобное и если честно до сих пор не пойму че тут



вот нормальный код для работы с базой хоть insert хоть select
Код:
string DB_set=project.Variables["DB_set"].Value;//тут параметры подключения к БД
var taB=project.Tables["таблица"];//таблица для результатов

//переменная запроса к бд, не обязательно писать все в одну строку.Код читается программой по разделителями    
string query="   
    SELECT
    `tok`,
    `sms_services_opt`.dll,
    `regexId`,
    `regexNum`,
    `val`,
    `oper`,
    `opt`,
    `country`
    FROM
    `sms_services_opt`,
    `sms_services`,
    `sms_services_set`,
    `sms_services_methods`
    where count>0
    AND `bal`>=`bal_min`
    AND `site`='other'
    AND `sms_services_opt`.dll=`sms_services`.dll
    AND `sms_services_methods`.dll=`sms_services`.dll
    AND `name` ='getNum'
    ORDER BY  price+0 asc LIMIT 1;
";


//                          запрос                                                             параметры бд     таблица 
ZennoPoster.Db.ExecuteQuery(query, null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, DB_set, ref taB);

//в таблице под названием 'таблица' в строке 0 будет готовый запрос к 1 из 7 смс сервисов, который берется для регистрации одного из n сайтов,
//по самой низкой цене на тек момент при том что номер должен быть в наличии и баланс сервиса должен быть не ниже установленного порога
//также там будут регулярки для обработки ответа от смс сервиса, чтобы достать номер и id операции, а тот код который написан у вас пытается 
//сделать UPDATE или что он вообще делает.
 

rus5665

Новичок
Регистрация
12.10.2016
Сообщения
10
Благодарностей
3
Баллы
3
Спасибо))
Я вообще не знаю С#, все делал по различным видеоурокам. Попробую ваш вариант
 

смм24

Client
Регистрация
05.07.2017
Сообщения
76
Благодарностей
10
Баллы
8
Спасибо))
Я вообще не знаю С#, все делал по различным видеоурокам. Попробую ваш вариант
Там касяк извините, sql запроса в c# коде можно только в одну строку писать, у меня тоже ни сразу получалось, оно как то постепенно приходит
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)