문제

이 코드를 사용하여 액세스 테이블에 레코드를 삽입하려고합니다:

public void InsertIntoPPTData(string tx, string site_no, string xmlfile, DateTime collect_dttm, string ppt_user, string tx_memo, string file_beg, string file_end)
{
    string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Duckbilled;Password=Platypus;Data Source=C:\RGT\NotSoBigData.MDB;Jet OLEDB:System database=C:\CCRWin\Data\jftfdcsc.mdw";
    using (var conn = new OleDbConnection(connStr))
    {
        using (var cmd = conn.CreateCommand())
        {
            cmd.CommandText = 
                @"INSERT INTO tx_tillermantea (tx, site_no, xmlfile, collect_dttm, ppt_user, tx_memo, file_beg, file_end) 
                  VALUES(@txval, @siteNum, @xmlfileName, @DTNow, @PPTUser, @TXMemo, @strfile_beg, @strfile_end)";
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.AddWithValue("@txval", tx);
            cmd.Parameters.AddWithValue("@siteNum", site_no);
            cmd.Parameters.AddWithValue("@xmlfileName", xmlfile);
            cmd.Parameters.AddWithValue("@DTNow", collect_dttm);
            cmd.Parameters.AddWithValue("@PPTUser", ppt_user);
            cmd.Parameters.AddWithValue("@TXMemo", tx_memo);
            cmd.Parameters.AddWithValue("@strfile_beg", file_beg);
            cmd.Parameters.AddWithValue("@strfile_end", file_end);
            conn.Open();
            cmd.ExecuteNonQuery();
        }
    }
}

...하지만"사령관.실행 쿼리();"줄이 터져:

시스템데이터오레드브사용자 코드에 의해 처리되지 않았습니다. 메시지=조건 식의 데이터 유형 불일치.소스=마이크로소프트 오피스 액세스 데이터베이스 엔진 스택트레이스:시스템에서데이터오레드브-명령해운영 체제에 대한 자세한 내용은 <url> 참조하십시오. 시스템에서데이터오레드브-명령해이 작업을 수행하려면 다음 단계를 수행해야 합니다. 시스템에서데이터오레드브-명령해실행 명령 텍스트(객체 및 실행 결과) 시스템에서데이터오레드브-명령해명령 실행(명령 동작 동작,객체 및 실행 결과) 시스템에서데이터오레드브-명령해명령 행의 동작은 문자열 메서드를 사용하여 수행 할 수 있습니다. 시스템에서데이터오레드브-명령해실행 쿼리()

내 생각 엔 문제는 고독한 날짜 시간 값이지만 무엇이 잘못 되었습니까:

cmd.Parameters.AddWithValue("@DTNow", collect_dttm);

?

나는"날짜 시간"을 지나가고 있습니다.이제"라고 합니다.

도움이 되었습니까?

해결책

제공된 링크는 이에 대한 두 가지 이상의 수정 사항을 보여줍니다;나는 단순히 믹스에서 날짜/시간 매개 변수를 제거하고 삽입 문 내에서 날짜/시간 값을 직접 주입하는 가장 간단한 것을 발견했습니다.:

cmd.CommandText = 
    @"INSERT INTO tx_tillermantea (tx, site_no, xmlfile, collect_dttm, ppt_user, tx_memo, file_beg, file_end) 
      VALUES(@txval, @siteNum, @xmlfileName, Now(), @PPTUser, @TXMemo, @strfile_beg, @strfile_end)";
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top