C# 无法从DataGrid中删除行
现在这可能是一个“Noob”问题。但我似乎无法执行人们在DataGrid中执行的任何命令。区别是什么,为什么我只能得到DataGrid 我的问题是,当从数据库中提取数据网格中的行时,我试图删除这些行。但是,我不知道怎么做,因为SelectRows命令不起作用 这就是我目前所拥有的。我还能得到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
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模式。