programing

ODBC ExecuteNonQuery()가 중단됨

goodsources 2023. 11. 2. 21:41
반응형

ODBC ExecuteNonQuery()가 중단됨

재미있는 문제가 생겼어요.INSERT 명령과 UPDATE 명령을 데이터베이스에 실행하는 데이터 커넥터가 있습니다.문제는 때때로 모든 것이 정상적으로 실행되고 쿼리가 삽입되지만 ExecuteNonQuery 메서드가 중지되고 데이터 커넥터가 중지되며 예외가 발생하지 않으며 시간 초과도 발생하지 않는다는 것입니다.코드 조각이 있습니다.

    OdbcCommand insertCommand = dbConnection.CreateCommand();

    insertCommand.CommandText = @"INSERT INTO `table` 
                    (name, creation, modified, modified_by)
                    VALUES (
                    ?, ?, ?, ?)";

    insertCommand.Parameters.AddWithValue("@name", operation.ExternalProductionOrderLineOperationId);
    insertCommand.Parameters.AddWithValue("@produced_qty", Convert.ToDecimal(operation.Quantity));
    insertCommand.Parameters.AddWithValue("@product_operation_type", productionOrder.ProductOperationType);
    insertCommand.Parameters.AddWithValue("@product_articulus", productionOrder.ProductArticulus);

    _logger.LogInformation("Operacija paruosta exportinimui!"); <----------- THIS IS THE PLACE, sometimes it runs okey, sometimes it freezes

    try
    {
        var n = insertCommand.ExecuteNonQuery();

        if (n != 0)
        {
            await UpdateProductionOrderLineOperation(productionOrder, operation, true);
            _logger.LogInformation("operation nr: {x} exported", counter);
        }
        else
        {
            _logger.LogInformation("operation nr: {x} failed to export");
        }
    }
    catch (InvalidOperationException e)
    {
        _logger.LogInformation("InvalidOperationException: {x}", e.ToString());
    }
    catch (Exception e)
    {
        _logger.LogInformation("Exception: {x}", e.ToString());
    }
}
catch (OdbcException e)
{
    _logger.LogInformation("OdbcException: {x}", e.ToString());
}
catch (Exception e)
{
    _logger.LogInformation("Exception: {x}", e.ToString());
}

이 코드 줄을 블록을 사용하여 입력합니다.문제가 해결될 수도 있습니다.

van = insert명령어를 입력합니다.비쿼리 실행();

대신 시도 블록을 Odbc 명령 위에 놓거나 연결을 열 때 더 낫습니다.여러분이 경험하고 있는 오류는 예외 처리 전에 발생하기 때문에 앱이 망가지는 것입니다.

언급URL : https://stackoverflow.com/questions/67049911/odbc-executenonquery-hangs

반응형