所以我正在研究数据库程序,它需要使用INSERT INTO命令将Log插入数据库,但是在执行查询后表仍然为空。请帮忙!谢谢〜这是代码。
//Predefined connection string
OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\xxx\Desktop\data.mdb;Jet OLEDB:Database Password=xxx;");
private void Login_Load(object sender, EventArgs e)
{
Log("StartUp", "System", "NULL", "System StartUp");
}
public void Log(string Type, string User, string Table_affected, string Remarks)
{
string NowDateStamp = string.Format("{0}/{1}/{2}",
DateTime.Now.Day.ToString(),
DateTime.Now.Month.ToString(),
DateTime.Now.Year.ToString());
string NowTimeStamp = string.Format("{0}:{1}:{2}",
DateTime.Now.Hour.ToString(),
DateTime.Now.Minute.ToString(),
DateTime.Now.Second.ToString());
string tempSQL = string.Format("INSERT INTO 'Log' VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}')",
NowDateStamp,
NowTimeStamp,
Type,
User,
Table_affected,
Remarks);
vcon.Open();
OleDbCommand vcom = new OleDbCommand(tempSQL, vcon);
vcom.ExecuteNonQuery();
MessageBox.Show("Done"); // <-- This MessageBox isn't even showing.
vcon.Close();
}
所以基本上程序会启动然后记录时间,但是它似乎对数据库没有任何作用,任何人都可以帮助我吗?谢谢!
答案 0 :(得分:6)
执行查询会导致异常,但会捕获并忽略该异常。
您正在使用表名称所在的字符串文字。它应该只是标识符:
INSERT INTO Log VALUES ...
或方括号内的标识符:
INSERT INTO [Log] VALUES ...
答案 1 :(得分:0)
替换它:
INSERT INTO 'Log' VALUES
有了这个:
INSERT INTO Log VALUES
答案 2 :(得分:0)
除了别人说的话,我猜你也有语法错误。您应该指定要插入值的列。
INSERT INTO Log (<column1>,<column2>,...)
VALUES (<Value to insert into column1>, <Value to insert into column 2>,...)