求助,关于access的写入问题
我用xp系统,数据库可以读.并已经设置好权限(everyone完全),dataset已经写入进去,oleDbDataAdapter1.Update(mydataDataSet1);能编译过去 执行也没错误,但就是写不进去,我用了单个方法:
OleDbConnection con = new OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\mydata.mdb ");
OleDbCommand com = new OleDbCommand( "insert into admin (姓名,性别,家庭住址,联系方式) values ( 'dddd ', 'bb ', 'ffff ', 'eeeee ') ",con);
//oleDbConnection1.Open();
con.Open();
com.ExecuteNonQuery();
con.Close();
可以执行,但是也无法写入.
我用oleDbDataAdapter1的插入测试的时候可以写入进去.不知道这个是什么原因,困扰我n个星期了.
[解决办法]
ACCESS数据库文件的属性不能设置为只读,
直接修改ACCESS数据库文件只读属性即可.
[解决办法]
在你的数据库中-> 选择查询-> 在设计视图中创建查询-> 右键sql视图
把你的插入语句复制到该视图看是否能成功 如果能则是你的程序问题否则是你的数据库问题
数据库的话执行中会有提示
[解决办法]
前面我已经给出另外的方法:
DataTable dt=dataSet1.Tables[ "UserManager "];
DataRow dr = dt.NewRow();
dr[ "UserName "] = UserName.Text;
dr[ "UserTel "] = UserTel.Text;
dr[ "UserAddr "] = UserAddr.Text;
dt.Rows.Add(dr);
oleDA.Update(dataSet1, "UserManager ");
[解决办法]
另外你的数据库中的表是否有主键,如果你用CommandBuilder时,数据库中的表是否设置主键,也是不行的..