我做了两个窗体,mainform和addform,mainform上有一个添加按钮,当点击添加时,弹出addform窗体,addform上有一个保存按钮和几个文件框(输入数据用的).当点保存,数据好像存到数据库去了,但当你退出程序时,再打开access数据库进行查看,里面根本没有数据.这是为什么?

解决方案 »

  1.   

    可能是数据库的位置不对,是放在bin目录下吗?
    也可能是更新语句不对。。检查一下。
      

  2.   

    再补充一下,子窗体(addform)的formowner是mainform,mainform和子程序在结事时没有进行任何事件处理既formclosed和formclose没有进行处理.
    出现的现象是,关闭子程序时不出任何问题,但当关闭mainform再重新打开时,数据库里面的数据全没有了。
    好烦呀,以前从没有碰过,搞了好几天了都没有搞定.
      

  3.   

    其实你可以把下面的方法的返回参数设置成bool类型
    public void insertfriend(string name,string email,string phone,string birthday,string qqormas)//添加朋友信息 
            { 
                DateTime time =DateTime.Now; 
                OleDbConnection con = DB.CreateConofAccess(); 
                OleDbCommand cmd = new OleDbCommand("insert into friend_T values(@name,@email,@phone,@birthday,@updatetime,@qqormsn)",con); 
                cmd.Parameters.Add("@name", OleDbType.VarChar).Value = name; 
                cmd.Parameters.Add("@email", OleDbType.VarChar).Value = email; 
                cmd.Parameters.Add("@phone", OleDbType.VarChar).Value = phone; 
                cmd.Parameters.Add("@birthday", OleDbType.VarChar).Value = birthday; 
                cmd.Parameters.Add("@updatetime", OleDbType.Date).Value = time; 
                cmd.Parameters.Add("@qqormsn", OleDbType.VarChar).Value = qqormas; 
                con.Open(); 
                cmd.ExecuteNonQuery(); 
                con.Close(); 
            } 如果执行cmd.ExecuteNonQuery(); 返回的值(也就是SQL语句影响的行数)大于0,则表示数据库插入成功,返回True,然后在Click事件中设置一个断点来调试看看返回的结果是True还是False,这样的话,你可能会排除到底是不是执行SQL产生这样的问题。你说的关闭mainform应该不会影响这个SQL语句操作数据库的结果吧!因为你点击保存就已经对数据库进行操作了。结果也出来了。
      

  4.   

    试了问题还没有解决,添加保存代码没问题,现在以然存在.程序不退出就能显示数据,一退出再进行入的话,数据就没有了.
    会不会跟你数据库的模式有关?我对ACCESS不太熟.
      

  5.   

    数据库放在bin目录下面
    下面是连接字符串:
     OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=./pnotebook.mdb;");
                return con;
      

  6.   

    别的地方没有做任何处理.只不过在窗体调用的时候用了hide()函数,应该跟这个没关系吧?
      

  7.   

    看起来,你的问题应该是,当程序运行过程中数据是正常的.一但与数据源断开后再次运行程序,之前的数据就没有了!??这只有一个原因,就是你的数据库连接上有问题,表面上看你是把数据正常提交了,但可能提交的目的地只是数据库缓存源,而不是实际源.这才会出现下次运行数据丢失的问题.建议在退出时update数据源或检查数据库连接代码.
      

  8.   

    正解,当我把数据放到bin目录下面的时候就会出现那个问题,而放到外面则不会出现,那如果我要把数据连接字符串写相对路径,应该怎么办?
      

  9.   

    Data Source=pnotebook.mdb就这样写