none
无法将类型为“System.Windows.Forms.DataGridViewTextBoxCell”的对象强制转换为类型“System.IConvertible”。 RRS feed

  • 问题

  •  DataColumn[] pKey=new DataColumn[1];
                pKey[0]=ds.Tables["ff1"].Columns["sNum"];
                ds.Tables["ff1"].PrimaryKey = pKey;
               
                int x;
                object z;
                x = dataGridView1.CurrentRow.Index;
                z=dataGridView1[x,1];
                DataRow foundRow;
                object[] findTheseVals=new object[1];
                findTheseVals[0] = z;
                foundRow = ds.Tables["ff1"].Rows.Find(findTheseVals);//错误提示这个位置
                if (foundRow != null)
                    foundRow.Delete();
               
    2010年11月4日 16:05

答案

  • 我用这个方法解决了

    foreach (DataGridViewRow dgvRow in dataGridView1.SelectedRows)
                {
                    dataGridView1.Rows.Remove(dgvRow);
                }

    还是很感谢你

    • 已标记为答案 boistar 2010年11月5日 7:59
    2010年11月5日 7:59

全部回复

  • DEAR

    试着把dataGridView的儲存格轉型為DataRow
    z=dataGridView1[x,1] as DataRow;

     


    秘訣無它,唯勤而已
    2010年11月4日 16:25
  • 无法转换

    2010年11月4日 16:34
  • 那这样??

    z= this.dataGridView1.Rows[x].DataBoundItem as DataRow;

    请问您是要找出Row是否存在吗??如果是的话

    您可以将dataGridView.DataSource转成DataTable再来处理,毕竟DataGridViewCell操作方式比较少,这样一来也比较省资源

    DataTable table = dataGridView1.DataSource as DataTable;

    处理后的DataTable在细节重新绑定到DataGridView

     


    秘訣無它,唯勤而已
    2010年11月4日 17:11
  • 我用这个方法解决了

    foreach (DataGridViewRow dgvRow in dataGridView1.SelectedRows)
                {
                    dataGridView1.Rows.Remove(dgvRow);
                }

    还是很感谢你

    • 已标记为答案 boistar 2010年11月5日 7:59
    2010年11月5日 7:59