c # odbc запрос на обновление не работает должным образом - PullRequest
0 голосов
/ 10 января 2019

Привет У меня много трюков, делающих программу на c #

Мне нужно подключиться к SQLANYWHERE 11 и выполнить обновление таблицы

Не могли бы вы сказать мне, где я не прав?

программа идет хорошо, пока я не достигну: int number = wCommand.ExecuteNonQuery (); линия программа не падает, но таблицы не обновляются

        string dns = "Dsn=dattest;Uid=******;Pwd=******;";
        OdbcDataReader reader;
        OdbcCommand wCommand;
        ODBCClass dst1 = new ODBCClass(dns);
        queryins = "UPDATE dba.Sala_export_dati_macchina_produzione SET stato='p'";
        // +"WHERE id_prd_lav_ord_lav='"+ id_prd_lav_ord_lav + "'";
        wCommand = dst1.GetCommand(queryins);
        int number = wCommand.ExecuteNonQuery();
        Console.WriteLine("executed "+ number);

это класс odbc, который я использую

public class ODBCClass
    {

        OdbcConnection oConnection;
        OdbcCommand oCommand;

        public ODBCClass(string DataSourceName)
        {
            oConnection = new OdbcConnection(DataSourceName);

            try
            {
                oConnection.Open();

                System.Diagnostics.Trace.WriteLine("Connessione stabilita con il database " + DataSourceName);
            }

            catch (OdbcException caught)
            {
                System.Diagnostics.Trace.WriteLine(caught.Message);
            }
        }

        public void CloseConnection()
        {
            oConnection.Close();
        }

        public OdbcCommand GetCommand(string Query)
        {
            oCommand = new OdbcCommand
            {
                Connection = oConnection,
                CommandText = Query
            };

            return oCommand;

        }

        public void Dispose()
        {
            oConnection.Close();
        }

    }

EDIT

на всякий случай, если я попытался изменить строку подключения с помощью этого шаблона:

@"Driver={SQL Anywhere 11};DatabaseName=my_db_name;EngineName=my_server_name;uid=username;pwd=password;LINKs=tcpip(host=host_ip_address)"

и всегда система не выдала ошибку при соединении в обоих случаях

1 Ответ

0 голосов
/ 11 января 2019

Хорошо, ребята, это было довольно странно.

Позвольте мне объяснить все это. Я делал эту программу для клиента, который попросил программное обеспечение, которое могло бы связать мою базу данных mysql и базу данных sybase другой компании.

Проблема состояла в том, что СУБД этой компании при открытии на сервере блокирует все виды внешнего редактирования в БД, с которой связано.

Так что запрос на выборку работал регулярно, но обновление и вставка были заблокированы этим клиентом ... Я провел 4 дня с идеальной рабочей программой, но эта компания не сказала мне эту "маленькую" вещь.

Так что помните о СУБД, они жестоки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...