public partial class AddInfo : UserControl
    {
        //public DataTable DTable;
      //public OleDbDataAdapter ad;
        //private SqlConnection Connection;
        //private SqlDataAdapter DataAdapter;
        //private SqlCommandBuilder Builder;
        private DataSet Ds;
        private OleDbConnection Connection;
        private OleDbDataAdapter DataAdapter;
        private OleDbCommandBuilder Builder;
        public AddInfo()
        {
            InitializeComponent();
            this.BackColor = Color.White;
            //Connection = new SqlConnection(MyDepot.Properties.Settings.Default.MydeConnectionString);
            Connection = new OleDbConnection(MyDepot.Properties.Settings.Default.MydeportConnectionString);
            Connection.Open();
            //MessageBox.Show(MyDepot.Properties.Settings.Default.MydeConnectionString);
            //DataAdapter = new SqlDataAdapter("select * from [DEPORT]", Connection);
            DataAdapter = new OleDbDataAdapter("select * from [DEPORT]", Connection);
            DataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            //Builder = new SqlCommandBuilder(DataAdapter);
            Builder = new OleDbCommandBuilder(DataAdapter);
            Builder.QuotePrefix = "[";
            Builder.QuoteSuffix = "]";
            Ds = new DataSet();
            DataAdapter.Fill(Ds, "DEPORT");
            this.dataGridView1.DataSource = Ds.Tables[0];
            Connection.Close();
            
        }        private void AddInfo_Load(object sender, EventArgs e)
        {
        }
       // public DataTable ShowTable
        //{
            //get { return DTable; }
            //set
           // {
           //     DTable=value;
           // }
       // }        private void button1_Click(object sender, EventArgs e)
        {
            DataRow dr = Ds.Tables[0].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;
            Ds.Tables[0].Rows.Add(dr);
            Ds.Tables[0].AcceptChanges();
            
        }        private void button2_Click(object sender, EventArgs e)
        {
            DataAdapter.Update(Ds.Tables["DEPORT"]);
         //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();
        }
    }
我把dataGridView等都放在一个用户控件里,mytextBox是自己重新绘制的TEXTBOX,TextBoxString是个属性 
public string TextBoxString
        {
            get { return textBox1.Text.Trim(); }
            set { textBox1.Text = value; }
        }
我分别试了两种数据库ACCESS和SQLEXPRESS但就是不能更新,DataAdapter.Update(Ds.Tables["DEPORT"])执行了也没用数据库的数据不变,ACC我用VS生成数据源可以新增数据,但SQLEXPRESS自动数据源也不能新增,

解决方案 »

  1.   

    连接没有问题,每次运行可以看带数据,就是无法修改数据,是不是数据库有什么设置?还是代码有问题啊?难道ADO在用户控件中是无法使用,还有就是我直接执行SQL的删除语句是可以删除的
      // Connection.Open(); 
     SqlCommand cmd = new SqlCommand("delete from DEPORT WHERE [DE-ID]='2'",Connection); 
              //cmd.ExecuteNonQuery(); 
              //  Connection.Close(); 
      

  2.   

    你调用Dataset的update看看.
    Ds.Update();
      

  3.   

    这DS好象没UPDATE方法吧.NET 3.5没
      

  4.   

    奇怪的事还有。。我用VS生成SQLEXPRESS的数据源。然后拖入FORM中,运行在FORM中添加数据时候正常运行,重起调试数据还在,但在VS的SQLEXPRESS数据库中根本没保存进去,真不知道重起调试的时候添加的数据怎么保留上去的
      

  5.   

    .NET Framework 类库
    DataAdapter.Update 方法
    从名为“Table”的 DataTable 为指定的 DataSet 中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。 更新的是 数据源 还是数据库哦...
      

  6.   

    VS有自动生成的数据源总没错吧~~但还是不能更新SQLEXPRESS数据库
      

  7.   

    能啊~~这个有Builder = new OleDbCommandBuilder(DataAdapter); 自动生成SQL语言,
    DataAdapter = new OleDbDataAdapter("select * from [DEPORT]", Connection); 这里选择的数据包含主键
                
      

  8.   

     Ds.Tables[0].AcceptChanges(); 这句去掉