none
ACCESS奇怪问题 RRS feed

  • 问题

  •   我的ACCSEE只要保存数据后就在行中出现 “#错误”,弹出对话框“无效标签”,“无法识别的数据库”,然后数据自动被删除了,
    private OleDbConnection Connection;
            private OleDbDataAdapter DataAdapter;
            private OleDbCommandBuilder Builder;
            private DataSet Ds;
            public Form2()
            {
                InitializeComponent();
                Connection = new OleDbConnection(MyDepot.Properties.Settings.Default.MydeportConnectionString);
                Connection.Open();
                DataAdapter = new OleDbDataAdapter("select * from [DEPORT]", Connection);
                DataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                Builder = new OleDbCommandBuilder(DataAdapter);
                Builder.QuotePrefix = "[";
                Builder.QuoteSuffix = "]";
                Ds = new DataSet();
                DataAdapter.Fill(Ds, "DEPORT");
                Connection.Close();
                
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
            }
    
            private void 信息添加ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                AddInfo Add = new AddInfo();
                this.userControl11.ControlAdd(Add,"信息添加");
                Add.ShowTable = Ds.Tables[0];
                Add.UpDateSql += new AddInfo.UpdateSql(ThisUp);
                
            }
    
            private void ThisUp()
            {
                DataAdapter.Update(Ds, "DEPORT");
            }
    UserControl1中代码
    public partial class AddInfo : UserControl
        {
            private DataTable DTable;
          
            public delegate void UpdateSql();
            public UpdateSql UpDateSql;
            public AddInfo()
            {
                InitializeComponent();
                this.BackColor = Color.White;
            }
    
            private void AddInfo_Load(object sender, EventArgs e)
            {
            }
            public DataTable ShowTable
            {
                get { return DTable; }
                set
                {
                    DTable=value;
                    dataGridView1.DataSource = value;
                }
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                DataRow dr = DTable.NewRow();
                dr[0] = mytextBox1.TextBoxString;
                dr[1] = mytextBox2.TextBoxString;
                dr[2] = mytextBox3.TextBoxString;
                dr[3] = mytextBox4.TextBoxString;
                dr[4] = mytextBox5.TextBoxString;
                dr[5] = mytextBox6.TextBoxString;
                dr[6] = mytextBox7.TextBoxString;
                dr[7] = mytextBox8.TextBoxString;
                dr[8] = mytextBox9.TextBoxString;
                DTable.Rows.Add(dr);
                
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
    
                UpDateSql();
             //OleDbConnection  Connection = new OleDbConnection(MyDepot.Properties.Settings.Default.MydeportConnectionString);
              // Connection.Open();
             // SqlCommand cmd = new SqlCommand("delete from DEPORT WHERE [DE-ID]='2'",Connection);
              //cmd.ExecuteNonQuery();
              //  Connection.Close();
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                this.mytextBox1.TextBoxString = "";
                this.mytextBox2.TextBoxString = "";
                this.mytextBox3.TextBoxString = "";
                this.mytextBox4.TextBoxString = "";
                this.mytextBox5.TextBoxString = "";
                this.mytextBox6.TextBoxString = "";
                this.mytextBox7.TextBoxString = "";
                this.mytextBox8.TextBoxString = "";
                this.mytextBox9.TextBoxString = "";
    
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                foreach (DataGridViewRow DGRow in this.dataGridView1.SelectedRows)
                {
    
                        dataGridView1.Rows.Remove(DGRow);
    
                }
            }
    请大家指教!谢谢!
    2009年9月14日 4:38

答案

  • 建议你使用强类型的数据集,这样可以避免写大部分代码。
    知识改变命运,奋斗成就人生!
    • 已标记为答案 FIYZM 2009年9月15日 0:06
    2009年9月14日 5:13
    版主

全部回复

  • SQLEXPRESS 也是这样,只是SQL不出现错误,数据也没被自动删除掉。看来是我代码问题了
    2009年9月14日 4:48
  • 建议你使用强类型的数据集,这样可以避免写大部分代码。
    知识改变命运,奋斗成就人生!
    • 已标记为答案 FIYZM 2009年9月15日 0:06
    2009年9月14日 5:13
    版主
  • 我可能是发现问题了,好象是VS把数据库还原的,数据库原来保存的程序目录里的,可能是运行后VS自动把他复制他DEBUG里了,可能这样就还原了

    2009年9月15日 0:05