private void button2_Click(object sender, EventArgs e)
        {
            int index = this.dataGridView1.CurrentRow.Index;//记录要删除的行在dataGridView的位置
            DataTable dt = new DataTable();
            dt = (DataTable)this.dataGridView1.DataSource;//获取dataGridView的数据源
            dt.Tables[0].Rows[index].Delete();//在DataSet中删除        }
这个主要是设置一个在datagridview中选中要删除的对象进行删除的功能,在运行的时候出现了一个错误,就是最后一行的Tables那里。错误如下:
错误 1 “System.Data.DataTable”不包含“Tables”的定义,并且找不到可接受类型为“System.Data.DataTable”的第一个参数的扩展方法“Tables”(是否缺少 using 指令或程序集引用?) d:\我的文档\visual studio 2010\Projects\SQL\Form1.cs 40 16 SQL请教高手帮忙修改下,感谢!

解决方案 »

  1.   

    就是说 DataTable没有Tables这个属性或方法   你直接写dt.Rows[index].Delete(); 试试
    而且LZ  你这种 删除记录的方法 根本就删除不了数据库中的记录 当然我不知道你需求  
    不知道你这样做的原因是什么
      

  2.   


    dt本身就是一个datatable,当然就不包括Tables[0]的定义了,这是DataSet的成员。
    另外你自己重新实例化一个datatable,并将gridview中的某几类赋给该对象,然后再对这个对象中的行进行删除是无法把数据库中绑定到gridview的记录删除的,因为两者根本就没有任何关系。
      

  3.   


    出于安全的考虑,我开始的时候并没有要求删除数据库的 数据的,我只是想删除datatable中的数据而已。
    请问,假如要删除数据库内部的数据呢?
      

  4.   

    string ConnString;
    ConnString="Data Source="数据源(服务器名称或ip)";Initial catalog="数据库名称"; User id=sa; Password=密码";
    SqlConnection conn=new SqlConnection(ConnString);
    conn.Open();
                 String strSql = "delete 表名 where 字段ID='" +条件+ "'";
                SqlCommand cmdSelect = new SqlCommand(strSql, conn);
                cmdSelect.ExecuteNonQuery();
                conn.Close();
    以上仅作参考
      

  5.   

    tables是dataset中的有些数据没删除,说明你SQL有问题,有没有报错或者涉及级联删除的
    ,贴出你的SQL看看