저는 벽에 머리를 맞고 "UPDATE 문에서 구문 오류"라는 애매한 오류가 발생했습니다. 아무도 내 업데이트 성명서에 문제가 있다고 말해 줄 수 있습니까? 당신은 처음 "필드 = 값"있어Access 데이터베이스에서 하나의 부울 필드를 업데이트하십시오. C#
UPDATE table SET field = value WHERE field = value;
: @ Q1-쉬운 필드 이름이나 값이지만, 당신이 뭔가에 필드를 설정해야하는 경우
try
{
OleDbConnection ECon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\zoofari\zoofari\zoofari\bin\Debug\MainData.accdb");
OleDbDataAdapter EdAdapt = new OleDbDataAdapter();
EdAdapt.UpdateCommand = new OleDbCommand("UPDATE tbl_Results SET @Q1-Easy WHERE Username = '" +txtUname.Text+ "'", ECon);
EdAdapt.UpdateCommand.Parameters.Add("@Q1-Easy", OleDbType.Boolean).Value = true;
ECon.Open();
EdAdapt.UpdateCommand.ExecuteNonQuery();
ECon.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
안녕하세요 스티브, Q1 - 쉬운 Fieldname입니다, 나는 그 값을 false에서 true로 변경하려고합니다. 이것에 대해 갈 길이 멀어 졌습니까? – LHammy
죄송합니다. 빠른 게시를 의미하지는 않았습니까?이 업데이트는 맞습니까? EdAdapt.UpdateCommand = 새 OleDbCommand ("UPDATE tbl_Results"+ "SET @ Q1-Easy = true 사용자 이름 = '"+ txtUname.Text + "'", ECon); – LHammy
아니요, 사실 작동하지 않습니다. 값을 문자열에 직접 넣으려면 -1을 전달합니다 (SqlServer가 1을 원할 때 Access에 있음). 내가 말했듯이. 항상 매개 변수화 된 쿼리를 사용하십시오. 봐 [SQL 주입 문제는 여기에] (http://stackoverflow.com/questions/332365/how-does-this-sql-injection-work) – Steve