今儿无聊写ADO.NET,DataAdapter更新字段的时候直接蹦错误“INSERT INTO 语法错误”。 经DEBUG,注释掉DATE和TIME两个蛋疼名字的字段就可以正常执行。看来里面自动生成的INSERT INTO语句里面直接把DATE和TIME这两个关键字写进去了,我尝试把所有字段写到SELECT里面,DATE和TIME加方括号,继续无效。翻API,发现CommandBuilder有两个神奇的属性。 OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter); builder.QuotePrefix = "["; builder.QuoteSuffix = "]"; 运行成功。API里面说就是遇到SQL关键字的时候的前后缀,Access是方括号MySQL是引号什么的,太他喵的人性化了。 另外一个小收获是以前一直不知道为什么我的代码里DataSet.Tables写[0]就好使写表名就不好使。今天发现丫不是自动找SELECT语句里的表名,应该是在Fill里面自动制定,(不指定默认就是Table?)例: DataSet set = new DataSet(