임대 테이블에 rent_date 및 return_date 열이 있고 데이터 유형이 Date입니다. 나는 그들을 위해 두 개의 다른 문자열을 만들었습니다. rentDate는 현재 날짜이고 returnDate는 현재 날짜로부터 제품이 대여 된 날짜를 더할 때의 출력입니다. to_date를 사용하여 문자열을 변환하려고했지만 오류가 표시되었습니다. 데이터 형식 varchar2 (30) 함께 시도했다. 잘 했어. 하지만 늦게 돌아 오는 날짜를 원하기 때문에 Date로 수정해야했습니다. 누구든지이 쿼리에 어떤 문제가 있는지 말해 줄 수 있습니까?문자열을 Date 데이터 유형으로 변환하고 데이터베이스에 삽입
DateTime dt = System.DateTime.Now;
string rentDate = dt.ToString();
// this is added to the current date of the user input and showed in the form
string returnDate = label66.Text;
string Query = "Insert into rental (pr_ID, cid, rent_date, Return_date, status, receipt_no) values ('" + comboBox5.Text + "' , '" + comboBox4.Text + "', (to_date('" + rentDate + "','dd/mm/yyyy')), (to_date('" + returnDate + "','dd/mm/yyyy')), '" + Status + "', '" + txt_recpt.Text + "') ";
왜 'DateTime'값을 '문자열'로 유지합니까? [이것은 완전히 잘못되었습니다.] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong-data-type.aspx). 'DateTime' 값을 직접 쿼리에 넣지 않는 이유는 무엇입니까? 항상 [매개 변수가있는 쿼리] (http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/)를 사용해야합니다. 이러한 종류의 문자열 연결은 [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) 공격에 개방적입니다. –
이전 의견에서 "Soner"와 완전히 동의합니다. 해당 문자열 concat - 매개 변수가있는 쿼리 대신 이동하십시오! http://www.dotnetperls.com/sqlparameter – Sandman
원인 DateTime 값을 쿼리에서 직접 dd/mm/yyyy 형식으로 전달할 수 없습니다. 내가 어떻게 해? 나는 여기 며칠 동안 붙어있다. – user3132223