Использование одного подключения для обновления работает на одном сервере, а не на другом - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть служба Windows, которая выбирает некоторые записи.И это работает так:

using (SqlConnection conn = new SqlConnection(CMS.SettingsProvider.SqlHelperClass.ConnectionString))
{
    conn.Open();
    SqlCommand command = new SqlCommand("SELECT...", conn);
    SqlDataReader reader = command.ExecuteReader();
    if (reader.HasRows)
    {
        while (reader.Read())
        {
            <snip>
            build item IDs to update
        }
        UpdateRecords(conn, itemIDs);
    }
}

РЕДАКТИРОВАТЬ

Функция обновления:

private void UpdateRecords(SqlConnection Connection, List<int> ItemIDs)
        {
            SqlCommand command = new SqlCommand("update table...", Connection);
            command.ExecuteNonQuery();
        }

Я установил его как службу Windows на сервере QA, и он обновил записи.На рабочем сервере он не обновляет записи.Журнал указывает, что процедура обновления даже не вызывается.В чем может быть причина?

Спасибо!

1 Ответ

0 голосов
/ 09 февраля 2012

Превентивное действие

 1. SQL Server Profiler
 2. Code debugging using production Database credentials

Пример справки

SQL SERVER - Введение в SQL ServerProfiler 2008


Корректирующие действия / исправления кода

using (System.Data.SqlClient.SqlConnection con = new SqlConnection("YourConnection string")) 
{
    con.Open();
    using(SqlCommand cmd = new SqlCommand())
    { 
        string expression = "Parameter value";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "Your Stored Procedure";
        cmd.Parameters.Add("Your Parameter Name", SqlDbType.VarChar).Value = expression;
        cmd.Connection = con;
        using (IDataReader dr = cmd.ExecuteReader()) 
        {
            if (dr.Read()) 
            {
            }
        }
    }
}

Встроенный SQL SERVER Profiler ScreenShot

enter image description here

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