通过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 有问题啊
}