OleDb更新Access数据库的问题
这段代码是更新Access数据库的,中有两个问题,让我抓狂了一天了
public void UpdateExpNote(IExpNote iExpNote)
{
string SQLUpdateExpNote = "UPDATE ExpNote SET IsPublished = @IsPublished, ProgramID = @ProgramID, NoteAuthor = @NoteAuthor ,NoteName = @NoteName WHERE NoteID = @NoteID; ";
OleDbConnection conn = null;
conn = GetConnection();
OleDbCommand cmd = new OleDbCommand(SQLUpdateExpNote, conn);
cmd.Parameters.Add( "@ExpNoteId ", OleDbType.Integer).Value = iExpNote.ExpNoteID;
cmd.Parameters.Add( "@IsPublished ", OleDbType.Boolean).Value = iExpNote.IsPublished;
cmd.Parameters.Add( "@NoteAuthor ", OleDbType.VarWChar, 50).Value = iExpNote.ExpNoteAuthor;
cmd.Parameters.Add( "@ProgramID ", OleDbType.Integer).Value = iExpNote.ProgramID;
cmd.Parameters.Add( "@NoteName ", OleDbType.VarWChar, 100).Value = iExpNote.ExpNoteName;
conn.Open();
int val = cmd.ExecuteNonQuery();
conn.Close();
}
第一是不管我的iExpNote.IsPublished是true还是false,Update以后IsPublished字段的值都变成了1,(IsPublished在Access中设为 是/否 类型)
第二是NoteName无论怎么样都不更新,即使别的字段都更新了它还是不变,死了不变,急死人了。
有谁能帮帮我的,多谢了
------解决方案--------------------在SQLSERVER中使用@参数可以,在ACCESS中应该是使用OLEDB,应该是update tablename set field1=?,field2=? where ID=?
------解决方案--------------------忘记了。好像是filed
------解决方案--------------------1.直接用字符串的true/false或yes/no试试
------解决方案--------------------1、你试试在“int val = cmd.ExecuteNonQuery();”中去掉“int val = ”
2、你的NoteAuthor和NoteName用的应该是一种表示方法,如果前者能更新后者不能,那绝对是人的问题了。我晕~~怎么可能哦