求助各位大神,C#能够更新DataGridView,但是不能更新Access数据库

通过sql语句insert into插入数据,代码正常运行,在DataGridView能够显示增加的数据,但是Access数据库没有更新,是什么原因啊?求救啊各位大神

    public void updatecon() // 写入并更新数据
    {
        OleDbCommand incmd;
        OleDbDataAdapter inda;
        DataSet inds;

        string id = textBox2.Text;
        string keyname = textBox3.Text;
        string username = textBox4.Text;
        string tel = textBox5.Text;
        string time = textBox6.Text;

        bool userempty = (username.Length == 0);
        bool telempty = (tel.Length == 0);
        if (userempty == true || telempty == true)
        {
            MessageBox.Show("请输入姓名和电话!");
        }
        else
        {
            try
            {
                tempcon.Open();

            string insql = "insert into [UserInfo](ID,KeyName,[UserName],[Tel],[Time]) values ('" + id + "','" + keyname + "','" + username + "','" + tel + "','" + time + "')";  //选择用户数据表
            //string insql = "select * from UserInfo";  //选择数据表
            incmd = new OleDbCommand(insql, tempcon);

            incmd.ExecuteNonQuery();  //执行
                            }
                            catch (Exception a)
            {
                throw a;
            }
                            tempcon.Close();
    }

图片说明

一个是检查throw a那里,有没有丢出异常,一个是tempcon的连接字符串是什么,更新的数据库是不是你期望的那个。

tempcon.Open(); 移到 incmd.ExecuteNonQuery(); //执行直接前面看看

你点击保存记录的时候发生了什么事情,贴出来看看 ,在语句“tempcon.Open();” 这打个断点,调试下。

感谢各位,原来是数据库路径的问题,改成Data Source=D:\visual studio 2013\Projects\NFC\nfc.accdb这种绝对路径就可以了。我把ACCESS数据库直接放在工程文件夹里面,之前用的是Data Source=nfc.accdb,程序也能找到数据库,但是不能把数据写进去,有大神知道这两种方式的区别吗?

调试输出下try ()cathc{
//看下输出的具体是什么?是不是你的修改sql 有问题啊
}