2012-12-15 2 views
0

쿼리가 실행되는 동안 쿼리를 실행하려고했지만 아무 것도 삽입하지 않았거나 오류를 반환하지 않았습니다.SQL 쿼리가 삽입되지 않습니다.

데이터베이스 연결이 열려 있고 정상적으로 연결되어 있습니다.

public void insertError(string error, DateTime time) 
    { 
     SqlCeParameter[] sqlParams = new SqlCeParameter[] 
     { 
      new SqlCeParameter("@exception", error), 
      new SqlCeParameter("@time", time) 
     }; 

     try 
     { 
      cmd = new SqlCeCommand(); 
      cmd.Connection = connection; 
      cmd.CommandType = CommandType.Text; 
      cmd.CommandText = "INSERT INTO errorlog (exception, time) VALUES(@exception, @time)"; 
      cmd.Parameters.AddRange(sqlParams); 
      cmd.ExecuteNonQuery(); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e.Message); 
     } 
    } 

어떤 도움을 주시면 감사하겠습니다, 감사합니다 사전에 :

이 표는 다음 데이터

- id (int autoincremental, Primary key, Unique) 
- exception (varchar) 
- time (DateTime) 

exception = String(error message) 
time = DateTime.Now 

오류 로그 전화를 보유하고있다 여기에 코드입니다. 이 호출되는

protected DataController() 
    { 
     try 
     { 
      string appPath = System.IO.Path.GetDirectoryName(Assembly.GetAssembly(typeof(DataController)).CodeBase).Replace(@"file:\", "") + @"\"; 
      string strCon = @"Data Source = " + appPath + @"Data\EasyShop.sdf"; 
      connection = new SqlCeConnection(strCon); 
     } 
     catch (Exception e) 
     { 

     } 

     connection.Open(); 
    } 

마지막 방법 :

public bool log(string msg, bool timestamp = true) 
    { 
     DataController dc = DataController.Instance(); 
     dc.insertError(msg, DateTime.Today); 

     return true; 
    } 
+1

time = DateTime, DataType을 nVarChar로 설정하여 ToString()을 사용해 보았습니다. 전혀 차이가 없다. 아무런 오류없이 삽입되지 않습니다. – Deejdd

+0

@exception에서 따옴표를 제거하고 다시 시도하십시오. – vtortola

+0

우선 코드에 대한 리펙터링 ... 전체적인 접근법이 특히 매개 변수를 처리하는 방법에있어 잘못된 것으로 보입니다. – MethodMan

답변

1
  1. 디버그 응용 프로그램 및 있는지 Heres는 예외 :

    연결 주위

    편집 제거 따옴표 connection 포인트가 정확합니다. y를 원하는 데이터베이스 에 입력하십시오. 또한 삽입 된 레코드 을 동일한 데이터베이스에서 찾는지 확인하십시오.

  2. connection이 거래에 속한 경우 거래가 완결되었는지 확인하십시오. 트랜잭션이 커밋 될 때까지 삽입 된 레코드는 볼 수 없습니다.
  3. 내가보기에, 당신은 INSERT이 잘못되었습니다. @exception
  4. SQL Server 프로파일 러를 열고 데이터베이스에 연결하여 INSERT이 나타나는지 확인하십시오.
+0

- 연결이 올바른 것입니다. - 올바른 연결을 쿼리하는 중이고 디버깅도 오류없이 통과합니다. 또한 SQL 기반 오류 잡기. - 인용 부호없이 @exception이 작동하지 않습니다 (오류 없음) – Deejdd

+0

서식을 사용하여 죄송합니다. 여기 stackoverflow에서 서식을 잘 모르겠습니다. – Deejdd

+0

아마도 오류없이 전달되지만 삽입 된 레코드를 찾는 데이터베이스와 다른 데이터베이스에 레코드를 쓰게됩니다.그것은 직장에서 나에게 일어났습니다. 여기에 논리적으로 동일한 데이터베이스의 복사본이 있습니다. 다른 목적으로 사용되었습니다. –

관련 문제