Сообщение об ошибке «используется другим процессом»? - PullRequest
0 голосов
/ 25 мая 2020

Хотя процесс работает, я получаю информацию: Доступ запрещен. И это происходит, когда я добавляю действие для присвоения значения ReaderValue. Когда он не добавлен, все работает нормально. Что может быть не так?

private void cb_ReportCategory_SelectedIndexChanged(object sender, EventArgs e)
{
    if(!FirstLoad)
    {
        using (OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings[2].ToString()))
        {
            using (OleDbCommand com = con.CreateCommand())
            {
                /*com.CommandText = @"SELECT SUM(Amount_Current_quarter) 
                                  FROM qryEmployeeCostsPerRev 
                                  WHERE Bereich=""" + strDepartment + @""" 
                                        AND Vorname_Name=""Unallocated"" 
                                        AND Cost_Cat_Name=""" + cb_ReportCategory.SelectedValue + @"""";*/
                com.CommandText = "sp_EmployeeCostsperRev";
                com.CommandType = CommandType.StoredProcedure;
                com.Parameters.AddWithValue("Dept", strDepartment);
                com.Parameters.AddWithValue("CostCat", cb_ReportCategory.SelectedValue);

                Debug.Print(com.CommandText);

                con.Open();
                OleDbDataReader reader= com.ExecuteReader();

                if(reader.HasRows)
                {
                    while(reader.Read())
                    {
                        ReaderValue = reader.GetDouble(0);   
                    }
                }
                reader.Close();
                lblAmountValue.Text = Convert.ToString(ReaderValue);

            }

        }

Это «StoredProcedure» (в Access это запросы)

 PARAMETERS [DEPT] Text ( 10 ), [CostCat] Text ( 20 ); 
 SELECT SUM(NAV_TOTALS_Per_Rev.Amount_current_quarter) AS Amount 
 FROM (ReportCostCategory as t1 INNER JOIN NAV_Acc_Mapping ast t2 
      ON t1.Cost_Cat_Name = t2.Report_Category ) 
      INNER JOIN ([FTE Werte] t3 
          INNER JOIN NAV_TOTALS_Per_Rev t4 ON t3.Kostenstelle = t4.Dimension_CostCenter_Value) 
      ON t2.Account_No = t4.Account_ID 
 WHERE BEREICH=[Dept] AND Cost_Cat_Name=[CostCat] 
                      AND Vorname_Name="Unallocated";

1 Ответ

1 голос
/ 25 мая 2020

... по назначению текста ярлыка, чем он будет работать снова.

Это означает, что столбец 0 не сопоставлен с двойным. Вероятно, это должно быть GetInt32 () или GetDecimal ().

Используйте отладчик, чтобы узнать точное значение и тип.

Или Debug.Print(reader[0].GetType().Name)

Остается исключение. Я не уверен, что вызывает это. Возможно, это последующая ошибка при попытке загрузить сообщение об ошибке из ресурсов.

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