누락 된 부분을 모르지만 액세스 데이터베이스 삽입시 구문 오류가 계속 발생합니다.Access 데이터베이스 삽입시 SQL 구문 오류가 발생했습니다.
string sql = "INSERT INTO Users (FirstName, LastName, BirthDate, Username,
Password) VALUES ('{0}','{1}','{2}','{3}','{4}');";
string sqlF = String.Format(sql, f, l, dob.ToString("MM/dd/yyyy"), u, Encrypt(p));
MessageBox.Show(sqlF);
OleDbConnection conn = DBConn(_BudgetMainDB, _BudgetMainPass);
OleDbCommand cmd = conn.CreateCommand();
conn.Open();
cmd.CommandText = sqlF;
cmd.Connection = conn;
cmd.ExecuteScalar();
다음
가) DB 매개 변수를 항상 사용하십시오. 당신의 코드는'O'Brien'이나'D' Artagne'와 같은 이름에서 실패 할 것입니다. B) 암호를 평문이나 암호로 저장하지 마십시오. C) 날짜를 텍스트로 저장하지 마십시오. 그들은 날짜처럼 행동하지 않습니다. – Plutonix
어떻게됩니까? 모든 값 매개 변수를 전달하지 않으면이 기능이 작동합니까? 또한 대괄호로'[Password]와 [UserName]'을 감 쌉니다. cmd.ExecuteScalar()는'1' 행을 반환하는 Select 문을 나타냅니다. 다음'INSERT, UPDATES, DELETES'을 수행 할 때'cmd.ExecuteNonQuery()'를 사용할 필요가 있습니다. 또한'using() {}'구문을 사용하여 Sql 객체를 래핑하는 방법을 읽습니다. 현재 SQL은 결함이있다 – MethodMan
. 이제까지. 사슬 같이 잇다. 입력. 으로. SQL. - 진지하게, 그렇게하지 마라. 이것은 유용 할 수 있습니다 : http://blog.marcgravell.com/2017/12/dapper-prepared-statements-and-car-tyres.html –