C# 无法从DataGrid中删除行

C# 无法从DataGrid中删除行,c#,.net,wpf,datagridview,datagrid,C#,.net,Wpf,Datagridview,Datagrid,现在这可能是一个“Noob”问题。但我似乎无法执行人们在DataGrid中执行的任何命令。区别是什么,为什么我只能得到DataGrid 我的问题是,当从数据库中提取数据网格中的行时,我试图删除这些行。但是,我不知道怎么做,因为SelectRows命令不起作用 这就是我目前所拥有的。我还能得到DataGrid吗 编辑: 这就是我将信息输入数据网格的方式 private void Button_Click(object sender, RoutedEventArgs e) { foreach

现在这可能是一个“Noob”问题。但我似乎无法执行人们在DataGrid中执行的任何命令。区别是什么,为什么我只能得到DataGrid

我的问题是,当从数据库中提取数据网格中的行时,我试图删除这些行。但是,我不知道怎么做,因为SelectRows命令不起作用

这就是我目前所拥有的。我还能得到DataGrid吗

编辑: 这就是我将信息输入数据网格的方式

private void Button_Click(object sender, RoutedEventArgs e)
{
    foreach (DataGridViewRow row in userDataGrid.SelectedRows)
    {
        if (!row.IsNewRow)
            dataGridView1.Rows.Remove(row);
    }
} 




SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Server=----; Database=----; User id=vsd; password=----";
conn.Open();

dt = new DataTable();
sda = new SqlDataAdapter("SELECT TeacherID, ClassName, ClassID FROM CLASS", conn);
sda.Fill(dt);
userDataGrid.ItemsSource = dt.DefaultView;
conn.Close(); 

另外,如果有更好的方法,也请让我知道。我对这一切都很陌生。

每次从数据库中提取行时,都使用相同的DataTable实例

DataTable mDataTable = new DataTable(); //class field

public Constructor()
{
    InitializeComponent();

    userDataGrid.ItemsSource = mDataTable .mDataTable;
}    

void PullData()
{
    mDataTable.Clear();

    using (SqlConnection conn = new SqlConnection(ConnectionString))
    {
        conn.Open();
        sda = new SqlDataAdapter("SELECT TeacherID, ClassName, ClassID FROM CLASS", conn);
        sda.Fill(mDataTable );
    }
}
这应该可以解决你的问题,但这是一个糟糕的方法。
正如Bizz所建议的,看看MVVM模式和实体框架。

这就是我删除按钮的最终目的。大多数答案都试图回答DataGridView。但是,这不是WinForms或DataGridView。这就是WPF和它的DataGrid

这就是我从网格和数据库中删除该行所做的

private void delete_Click(object sender, RoutedEventArgs e)
    {
        DataGrid dg = this.aSSIGNMENTDataGrid;

        var id1 = (DataRowView)dg.SelectedItem;  //Get specific ID From                DataGrid after click on Delete Button.

        PK_ID = Convert.ToInt32(id1.Row["AssignmentID"].ToString());

        SqlConnection conn = new SqlConnection(sqlstring);
        conn.Open();

        string sqlquery = "delete from ASSIGNMENT where AssignmentID='" + PK_ID + "' ";
        SqlCommand cmd = new SqlCommand(sqlquery, conn);
        cmd.ExecuteNonQuery();
        filldatagrid();
    }

    private void filldatagrid()
    {
        SqlConnection conn = new SqlConnection(sqlstring);
        conn.Open();

        string sqlquery = "select * from ASSIGNMENT";
        SqlCommand cmd = new SqlCommand(sqlquery, conn);
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        adp.Fill(dt);
        aSSIGNMENTDataGrid.ItemsSource = dt.DefaultView;
        conn.Close();
    }

如何填充DataGrid的项目?绑定?@Bizz我已经更新了如何将信息放入数据网格的问题。我已经很久没有把数据表放在一边了。使用实体框架要容易得多。为了有效地使用wpf,还可以使用MVVM模式。