2014-02-19 1 views
1

데이터베이스 (Sql Server 2008)에 레코드를 삽입하려고하는데 형식이 dd/MM/yyyy hh 인 날짜를 삽입해야합니다. : mm : ss.형식 dd/MM/yyy hh : mm : ss 데이터 피킹 C#

데이터 피커의 값을 형식화하려고합니다. mm :

public Manas() 
{ 
    InitializeComponent(); 
    datep.CustomFormat = "dd/MM/yyyy hh:mm:ss"; 
    datep.Format = DateTimePickerFormat.Custom; 
}    

sbQuery1S.Append("UPDATE AC SET date= '" + datep.Value.ToString() + "' WHERE NTIVO='" + txtct.Text.ToString() + "' AND NUMA ='" + txia.Text.ToString() + "' AND NUIPO='" + txtpo.Text.ToString() + "' AND SUACT='" + txtSNum.Text.ToString() + "'"); 
       cmd1S.CommandText = sbQuery1S.ToString(); 
       cmd1S.Connection = conn; 
       cmd1S.ExecuteNonQuery(); 

문제는 데이터 선택 도구의 형식은 DD // MM/YY HH를 점이다 : 이것은 내 코드입니다 SS

내가 방법을 변경할 수 있습니다에 대한 어떤 생각?

+0

CustomFormat에서 명확하게 설정 했으므로 변경하십시오. 해당 문자열을 변경하십시오. –

+0

"dd/MM/yyyy hh : mm : ss 형식으로 날짜를 삽입해야합니다."음, 왜? 왜 날짜/시간 값을 텍스트로 데이터베이스에 저장하고 있습니까? 왜 당신은 datetime이나 datetime2와 같은 목적을 위해 특별히 의도 된 타입을 사용하지 않는 것입니까? – jmcilhinney

+0

나는 dd/MM/yyy hh : mm : ss를 필요로하며 dd/MM/yy hh : mm : ss를 제공합니다 ... "yy"@Simon Whitehead에주의하십시오. – PETTA

답변

3

SQL 인젝션 취약점이 발생할 수 있으므로이 작업을 절대로하지 마십시오. 매개 변수를 사용해야합니다.

cmd1S.CommandText = "UPDATE AC SET date = @p1 WHERE NTIVO = @p2 AND NUMA = @p3 AND [email protected] AND [email protected]"; 
var p1 = cmd1S.CreateParameter(); 
p1.Name = "p1"; 
p1.Value = DateTime.ParseExact(datep.Value, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture) 
cmd1S.Parameters.Add(p1); 
//other parameters 
cmd1S.Connection = conn; 
cmd1S.ExecuteNonQuery(); 
+0

어떻게 할 수 있습니까? – PETTA

+0

업데이트 된 답변보기 – hazzik

+0

나는 그것을했다. 그러나 이제는 오류가 발생했음을 알 수있다. (알려진 경우) = – PETTA