Я хочу получить номер строки кода, вызывающий ошибку. Например:
static void Main(string[] args)
{
    using (SqlConnection conn = new SqlConnection(bagcum))
    {
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = "DONTINSERT into GIVEMEERROR(CamNo,Statu) values (" + 23 + "," + 0 + ")";
        conn.Open();
        int n = cmd.ExecuteNonQuery();
    }
}
Так как мы знаем, что код не работает, он будет вызывать исключение. Номер строки кода, который:
int n = cmd.ExecuteNonQuery();
Итак, как можно получить номер строки с помощью try-catch? Я попытался использовать класс StackTrace, но он дает номер строки как 0:
static void Main(string[] args)
{
    try
    {
        using (SqlConnection conn = new SqlConnection(bagcum))
        {
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "DONTINSERT into GIVEMEERROR(CamNo,Statu) values (" + 23 + "," + 0 + ")";
            conn.Open();
            int n = cmd.ExecuteNonQuery();
        }        
    }
    catch (Exception ex)
    {
        System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);            
        Console.WriteLine("Line: " + trace.GetFrame(0).GetFileLineNumber());
    }
}
ВЫВОД:
Line:0
  Обновление: 
Обычно строка ошибки составляет 22, поэтому я должен получить это число.
Спасибо


