C#odbc更新查询无法正常工作

时间:2019-01-10 10:02:05

标签: c# sql-update odbc

嗨,我在用C#编写程序时遇到了很多麻烦

我必须连接到SQLANYWHERE 11并更新表

你能告诉我哪里错了吗?

程序运行良好,直到我达到: 整数= 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();
        }

    }

编辑

以防万一我尝试使用此模式更改连接字符串:

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

在两种情况下,系统始终不会给我错误连接

1 个答案:

答案 0 :(得分:0)

好家伙,有点奇怪。

让我解释一下整个事情。我正在为一个客户设计该程序,该客户要求一个可以链接我的mysql数据库和另一家公司的sybase数据库的软件。

问题是该公司的DBMS在服务器上打开时会阻止对与其连接的数据库的所有外部编辑。

因此,选择查询正常进行,但更新和插入被该客户端阻止... 我已经过了整整四天的工作计划,但是那家公司没有告诉我这件“小事”。

因此请注意DBMS是残酷的。