界面上有二个GridView,在右面的GridView中发兰多行选中(当然也能选一行),用一个按钮把选中的多行数据一起插到左面的GridView中。
高手帮忙,在线等。立刻给分。

解决方案 »

  1.   

    说一下配置:sql2000
    左面GridView数据连接用的是ObjectDataSource,
    右面GridView数据连接用的是SqlDataSource。
      

  2.   

    你的意思是从Access数据库导入Sql数据库里吗?
      

  3.   

    你可以将左边选中的数据丢到DataSet里面,然后将这个DataSet绑定到右边去吗?
      

  4.   

    不是的,二个都是sql2000.
    说一下,二个表字段结构不一样,但是都有对应相等的字段,只插相同的字段啊。
      

  5.   

    在按钮的事件中遍历右边的GridView的rows中每一行,FindControl找到CheckBox的列,判断是否Checked,如果是true则根据这一行的key值在左边的数据源中插入相应的数据(调用相应类型的执行插入动作的Method)。在遍历结束,重新绑定(databind)左边的GridView。
      

  6.   

    哦,我看错了,不好意思哈,懂你的意思了,那么这个相同的字段,是需要你事先设置好吧,既然这样,你还不如使用2个ListBox,直接左右移动就可以了用ListBox里面的Item.Add方法,多方便啊
      

  7.   

    遍历Rows的时候注意要判断Row的类型。
      

  8.   

    我写过Winform,你参照一下
    private void chbSelectAll_CheckedChanged(object sender, EventArgs e)
            {
                try
                {
                    if (chbSelectAll.Checked)
                    {
                        for (int i = 0; i < dgvAlarm.RowCount; i++)
                        {
                            dgvAlarm[0, i].Value = chk.TrueValue;
                        }
                    }
                    else
                    {
                        for (int i = 0; i < dgvAlarm.RowCount; i++)
                        {
                            dgvAlarm[0, i].Value = chk.FalseValue;
                        }
                    }
                }
                catch (Exception ex)
                {
                    new Exception(ex.Message);
                    //抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系
                    MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.Dispose();
                }
            }        private void btnAddAll_Click(object sender, EventArgs e)
            {
                try
                {
                    for (int i = 0; i < dgvAlarm.RowCount; i++)
                    {
                        bool blnOccured = false;
                        for (int j = 0; j < dgvFixLink.RowCount; j++)
                        {
                            if (dgvFixLink["TagID", j].Value.ToString() == dgvAlarm["TagID", i].Value.ToString())
                            {
                                blnOccured = true;
                                break;
                            }
                        }                    if (!blnOccured)
                        {
                            string[] RowAdd = new string[] { dgvAlarm["TagID", i].Value.ToString() };
                            dtFixLink.Rows.Add(RowAdd);
                        }
                    }
                    SetTagName();
                }
                catch (Exception ex)
                {
                    new Exception(ex.Message);
                    //抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系
                    MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.Dispose();
                }
            }        private void btnAdd_Click(object sender, EventArgs e)
            {
                try
                {
                    this.Validate();
                    for (int i = 0; i < dgvAlarm.RowCount; i++)
                    {
                        if (dgvAlarm[0, i].Value != null)
                        {
                            //僅將被鈎選的Tag加入
                            if (dgvAlarm[0, i].Value.ToString() == "Y")
                            {
                                bool blnOccured = false;
                                for (int j = 0; j < dgvFixLink.RowCount; j++)
                                {
                                    if (dgvFixLink["TagID", j].Value.ToString() == dgvAlarm["TagID", i].Value.ToString())
                                    {
                                        blnOccured = true;
                                        break;
                                    }
                                }                            if (!blnOccured)
                                {
                                    string[] RowAdd = new string[] { dgvAlarm["TagID", i].Value.ToString() };
                                    dtFixLink.Rows.Add(RowAdd);
                                }
                            }
                        }
                    }
                    SetTagName();
                }
                catch (Exception ex)
                {
                    new Exception(ex.Message);
                    //抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系
                    MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.Dispose();
                }
            }
     private void btnDelete_Click(object sender, EventArgs e)
            {
                //判斷被選中的行            try
                {
                    for (int i = 0; i < dgvFixLink.SelectedRows.Count; i++)
                    {
                        dgvFixLink.Rows[dgvFixLink.SelectedRows[i].Index].HeaderCell.ToolTipText = "*";
                    }
                    //從datagridview中刪除選中的行
                    for (int i = 0; i < dgvFixLink.Rows.Count; i++)
                    {
                        if (dgvFixLink.Rows[i].HeaderCell.ToolTipText == "*")
                        {
                            dgvFixLink.Rows.RemoveAt(i);
                            i--;
                        }
                    }
                }
                catch (Exception ex)
                {
                    new Exception(ex.Message);
                    //抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系
                    MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.Dispose();
                }
            }        private void btnDeleteAll_Click(object sender, EventArgs e)
            {
                dtFixLink.Clear();
            }
      

  9.   

    sp1234朋友:你说的很对,我就是不会操作,麻烦写一下好吗?请你喝酒吧。
    在PB里,我五分钟搞定,这里是菜鸟,五天也搞不定,见笑了。
      

  10.   

    为什么不是用ListBox呢?既然你就是为了识别那一列放入其他的数据表,没有必要用Gridview的啊;还有,你应该就取了一个ID,然后就是数据库操作了;
      

  11.   

    一下是ListBox的代码:
    //添加按钮
        protected void ibtnAdd_Click(object sender, ImageClickEventArgs e)
        {
            for (int i = this.lsbLift.Items.Count; i > 0; i--)
            {
                if (this.lsbLift.Items[i - 1].Selected)
                {
                    this.LsbRight.Items.Add(this.lsbLift.Items[i - 1]);
                    this.lsbLift.Items.Remove(this.lsbLift.Items[i - 1]);
                }
            }
        }    //全部添加按钮
        protected void ibtnAddAll_Click(object sender, ImageClickEventArgs e)
        {
            for (int i = this.lsbLift.Items.Count; i > 0; i--)
            {
                this.LsbRight.Items.Add(this.lsbLift.Items[i - 1]);
                this.lsbLift.Items.Remove(this.lsbLift.Items[i - 1]);
            }
        }    //删除按钮
        protected void ibtnDel_Click(object sender, ImageClickEventArgs e)
        {
            for (int i = this.LsbRight.Items.Count; i > 0; i--)
            {
                if (this.LsbRight.Items[i - 1].Selected)
                {
                    this.lsbLift.Items.Add(this.LsbRight.Items[i - 1]);
                    this.LsbRight.Items.Remove(this.LsbRight.Items[i - 1]);
                }
            }
        }    //全部删除按钮
        protected void ibtnAll_Click(object sender, ImageClickEventArgs e)
        {
            for (int i = this.LsbRight.Items.Count; i > 0; i--)
            {
                this.lsbLift.Items.Add(this.LsbRight.Items[i - 1]);
                this.LsbRight.Items.Remove(this.LsbRight.Items[i - 1]);
            }
        }
      

  12.   

    Leixueqiyi()朋友:加点注释好吗?
      

  13.   

    我二个都是数据表啊,怎么用ListBox?
      

  14.   

    遍历右边的Gridview找出选中的行,然后再加工左侧用于绑定的数据表
      

  15.   

    根据这一行的key值在左边的数据源中插入相应的数据(调用相应类型的执行插入动作的Method)。这句怎么做?前面我做好了。
      

  16.   

    楼主的问题只是一个 GET DATAROWS  和INSERT DATAROWS的问题 和界面是什么无所谓啊!
    前边显示的是数据集还是仅仅一个表号都无所谓
    而对于楼主来说 怎么读数据和写数据 应该是不在话下吧。