try
            {
                string connectionString = Properties.Settings.Default.dataConnectionString;
                int i = 0;
                DateTime gendate;
                OleDbConnection conn = new OleDbConnection(connectionString);
                conn.Open();
                while (i < chooselistbox.Items.Count)
                {
                    string sql = "insert into tData(fCode,fGenDate) values(?,?) ";
                    d.TryGetValue(chooselistbox.Items[i].ToString(), out gendate);
                    OleDbCommand cmd = new OleDbCommand(sql, conn);
                    cmd.Parameters.Add("fCode", OleDbType.VarChar).Value = chooselistbox.Items[i];
                    cmd.Parameters.Add("fGenDate", OleDbType.DBDate).Value = gendate;
                    cmd.ExecuteNonQuery();
                    i++;
                }
                conn.Close();
                MessageBox.Show("数据已存入数据库");
            }
            catch (Exception er)
            {
                MessageBox.Show("数据存储失败!" + er.Message);
            }

解决方案 »

  1.   

    mdb文件是否有可修改的权限?你检查的数据库是否跟程序使用的数据库是真的一个位置的?
      

  2.   

    你可以MessageBox.Show(connectionString);
    看数据库在什么位置
      

  3.   

    show出来是这串东西Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\data.mdb;Persist Sec" +
                "urity Info=True"
    然后我的数据库是放在可执行文件那个目录的
      

  4.   

    应该是这样Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\data.mdb;Persist Sec" +
                "urity Info=True"
      

  5.   

    把你的测试工程发来
    [email protected]
      

  6.   

    本帖最后由 net_lover 于 2012-05-10 14:55:02 编辑
      

  7.   

    我试了一下,还是不行,感觉很奇怪,cs-11里有一个数据库,debug里又有一个,是会这样的吗