日期:2014-05-20  浏览次数:20810 次

求助,关于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时,数据库中的表是否设置主键,也是不行的..