2016-07-25 3 views
0

사실, 판매 횟수가 잘 업데이트하고 난 사용자의 판매 수를 삽입 한 응용 프로그램을 만드는 메신저하지만 난 그 다음은 메신저 세부 넣어 전체 코드데이터베이스에 현재 날짜를 삽입하는 방법은 무엇입니까?

private void button1_Click_1(object sender, EventArgs e) 
     { 

      this.txtinput.MaxLength = 4; 
      cmd = new OleDbCommand("update Login set Sales_count= IIF(IsNull(Sales_count), 0, Sales_count) + 1 where [Unique_No][email protected]_No and [To_Date]='#"+DateTime.Now.ToString("dd/MM/yyyy")+"#'", con); 
      cmd.Parameters.AddWithValue("@Unique_No", txtinput.Text); 
       con.Open(); 
       int n = cmd.ExecuteNonQuery(); 

        if (n == 0) 
        { 
         MessageBox.Show("Invalid Unique No. pls try again later");// **Debugger come to this line if i insert [To_Date]='#"+DateTime.Now.ToString("dd/MM/yyyy")+"#'** // if i remove above line in code then its updating fine 

        } 
        else 
        { 
         this.DialogResult = DialogResult.OK; 
        } 



       con.Close(); 
      } 

     } 

를 업데이트하지 참조 붙여 넣기 액세스를 위해 현재 날짜를 넣어 쿼리에서 편집 할 때 테이블 세부 enter image description here enter image description here

+0

SQL-서버 <> MS 액세스 ... 아마 당신이 당신의 날짜 형식에 대한 따옴표를 이스케이프해야합니다. 예 : 'ToString (\ "dd/MM/yyyy \") ...'? – BJones

+0

게시 한 레코드 ('User_ID022')의 To_Date 열에 값이 없습니다. 따라서 게시 한 코드로 기록이 업데이트되지 않습니다. 해당 레코드를 업데이트하려면 코드에서'및 [To_Date] = '# "+ DateTime.Now.ToString ("dd/MM/yyyy ") +"# "'을 제거해야합니다. 또는 업데이트하기 전에 오늘 날짜를 To_Date 열에 입력해야합니다. – BJones

+0

@bjones :하지만 내가 원하는 것은 sales_count를 동시에 업데이트하려고 할 때 현재 날짜도 데이터베이스에 삽입하는 것입니다. – Atul

답변

1

Access SQL은 db 엔진이 현재 날짜를 결정하는 데 사용할 수있는 Date() 기능을 지원합니다. 따라서 현재 날짜를 가져 와서 SQL 문 텍스트에 연결하는 데 C# 코드가 필요하지 않습니다. 그리고 날짜를 SQL 매개 변수 (덜 불쾌 함)로 입력 할 필요가 없습니다. 단순히 db 엔진이 Date()을 결정하도록합니다.

cmd = new OleDbCommand("update Login set Sales_count= IIF(IsNull(Sales_count), 0, Sales_count) + 1 where [Unique_No][email protected]_No and [To_Date]=Date()", con); 

제안 사항은 귀하의 질문에서 SQL 문을 기반으로했습니다. 그러나 코멘트에서 일부 레코드의 경우 To_Date 값을 오늘 날짜로 변경하려는 것으로 들립니다. 어느 레코드가 변경되어야하는지 명확하지 않으므로 WHERE 절에 필요한 것이 무엇인지 알지 못합니다. 그러나 오늘 날짜에 To_Date 값을 업데이트, 액세스 SQL은 ... 이런 식으로 시작해야

UPDATE Login SET To_Date = Date() WHERE ... 
+1

안녕하세요, 쿼리에서 수정했습니다. 업데이트 로그인 집합 Sales_count = IIF (IsNull (Sales_count), 0, Sales_count) +1, [To_Date] = Date() [Unique_No] = @ Unique_No 및 해당 작업 벌금 :) – Atul

0

이 시도 :

private void button1_Click_1(object sender, EventArgs e) 
    { 
     DateTime toDay = DateTime.Now; 

     this.txtinput.MaxLength = 4; 
     cmd = new OleDbCommand("update Login set Sales_count= IIF(IsNull(Sales_count), 0, Sales_count) + 1 where [Unique_No][email protected]_No and [To_Date]= @to_day", con); 
     cmd.Parameters.AddWithValue("@Unique_No", txtinput.Text); 
     cmd.Parameters.AddWithValue("@date_now", toDay.ToString("yyyyMMdd")); 
      con.Open(); 
      int n = cmd.ExecuteNonQuery(); 

       if (n == 0) 
       { 
        MessageBox.Show("Invalid Unique No. pls try again later");// **Debugger come to this line if i insert [To_Date]='#"+DateTime.Now.ToString("dd/MM/yyyy")+"#'** // if i remove above line in code then its updating fine 

       } 
       else 
       { 
        this.DialogResult = DialogResult.OK; 
       } 



      con.Close(); 
     } 

    } 
+0

계속 디버거가 계속됩니다. MessageBox.Show ("Unique No. pls가 나중에 다시 시도하십시오") line – Atul

+0

@Atul은 당신입니다. 테이블에 응용 프로그램을 통해 입력하는 정보가 들어있는 레코드가 있는지 확인하십시오. 'SELECT * FROM Login WHERE [Unique_No] = @ Unique_No와 [To_Date] = @ to_day'을 시도해 봤습니까? – BJones

+0

@bjones : 참조 용으로 편집 한 액세스 데이터베이스 세부 정보 – Atul

0

바 제공 의견에 sed, 당신은 SET 날짜가 필요합니다. 원래 쿼리에서, 당신은 WHERE 절에서 사용하는 : 당신은 또한 내가 업데이트 한 잘못된 구문을했다

private void button1_Click_1(object sender, EventArgs e) 
{ 
    DateTime toDay = DateTime.Now; 

    this.txtinput.MaxLength = 4; 
    cmd = new OleDbCommand("update Login set Sales_count= IIF(IsNull(Sales_count), 0, Sales_count) + 1, [To_Date]= @to_day where [Unique_No][email protected]_No", con); 
    cmd.Parameters.AddWithValue("@Unique_No", txtinput.Text); 
    cmd.Parameters.AddWithValue("@to_Day", toDay.ToString("yyyyMMdd")); 
     con.Open(); 
     int n = cmd.ExecuteNonQuery(); 

      if (n == 0) 
      { 
       MessageBox.Show("Invalid Unique No. pls try again later");// **Debugger come to this line if i insert [To_Date]='#"+DateTime.Now.ToString("dd/MM/yyyy")+"#'** // if i remove above line in code then its updating fine 

      } 
      else 
      { 
       this.DialogResult = DialogResult.OK; 
      } 



     con.Close(); 
    } 

} 

. 위 쿼리가 작동하는지 알려주세요.

+0

여전히 디버거가 아래 줄에 있습니다. if (n == 0) { MessageBox.Show ("Unique No. pls try again again"); } – Atul

관련 문제