当我写下这样的代码时:datagridview1.DataSource=dataset1.Tables[0];
我就可以通过修改界面里的CELL来达到修改DataSet的目的  然后还可以通过DataSet Updata到数据库, 那么 数据绑定还有什么意义呢?  网上查到的都是怎样数据绑定  而我想知道数据绑定 到底能做什么别的方法做不到的事情.还有一个问题 通过DataGridview控件可以修改cell,但是不能添加和删除行和列,怎么样才能在界面上也就是DataGridview控件里修改行和列 甚至是表名?

解决方案 »

  1.   

    ..可以啊,你放上去下面不是多出一行么
     哪里可以添加,至于删除 需要添加一个按钮或
      你只要提交数据源就行了啊
     就是你所说的DATASET 或DATATABLE
     它只是一个对象它的作用也就那么多
     你只要一修改 然后提交状态就可以搞定的
      更新和提交状态不用教了吧..#4
      

  2.   

    添加行:首先窗体加载的时候将dataGridView1的属性AllowUserToAddRows设置为false,然后在窗体上添加一个按钮在按钮里写上如下内容:dataGridView1.AllowUserToAddRows = true;这样就达到了点击按钮时就会添加一行出来;
    删除行:
    private void delete_Click(object sender, EventArgs e)
            {
                DialogResult result = MessageBox.Show("确定要删除该行数据吗?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (result == DialogResult.OK)
                {
                    dataSet.Tables["Books"].Rows[dataGridView1.CurrentRow.Index].Delete();
                    SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
                    if (dataSet.HasChanges())
                    {
                        dataAdapter.Update(dataSet, "Books");
                        MessageBox.Show("ok");
                    }                dataGridView1.AllowUserToAddRows = false;
                }
            }
      

  3.   

    利用存储过程,你可以调用它.
    删除一行:
     private void tsb_del_Click(object sender, EventArgs e)
            {
                if (dgv_provider.SelectedRows.Count > 0 && dgv_provider.SelectedRows[0].Index != dgv_provider.Rows.Count)
                {
                    DataGridViewRow myRow = new DataGridViewRow();
                    myRow = dgv_provider.SelectedRows[0];
                    string name = myRow.Cells["书名称"].Value.ToString();
                    if ((MessageBox.Show("确定要删除" + name + "书", "删除书", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) == DialogResult.Yes)
                    {
                        
                        Class_provider provider = new Class_provider();
                        provider.Providerid = long.Parse(myRow.Cells["书编号"].Value.ToString());
                        provider.Userid = PublicMember.pfsh;
                        provider.delete();
                        queryprovider();//定义的方法
                    }