c# - 如何在 c# 中使用 ms 访问从数据网格视图中删除数据
问题描述
private void Delete_Click(object sender, EventArgs e)
{
//i have used this query for delete button
DataSet ds = new DataSet();
OleDbDataAdapter ad = new OleDbDataAdapter();
OleDbConnection con = new
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Users\HP\Desktop\sd.mdb");
con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Users\HP\Desktop\sd.mdb";
con.Open();
//this is the query i have used
OleDbCommand cmd = new OleDbCommand("DELETE FROM car_model WHERE Description ='" + des+ "'", con);
cmd.ExecuteNonQuery();
MessageBox.Show("Data Deleted");
con.Close();
}
//i have table named:car_model & attribute as Description
解决方案
你的报价看起来不对,但我的眼睛不是很好,无论如何,编译器会立即拿起它,所以我想这是别的东西。
private void BtnDelete_Click(object sender, RoutedEventArgs e)
{
DataRowView drv = (DataRowView)dataGridView1.SelectedItem;
int id = drv.Row[0];
if(drv != null)
{
delete(id);
}
}
public void delete(int id)
{
try
{
con.Open();
OleDbCommand comm = new OleDbCommand("Delete From Car_Model Where Description = @Des", con);
comm.Parameters.AddWithValue("@Des", id);
comm.ExecuteNonQuery();
}
catch(OleDbException ex)
{
MessageBox.Show("DataConnection not found!", ex);
}
finally
{
con.Close();
}
此外,使用“@”字符来防止 SQL 注入问题。我不认为这一定是 MS Access 的问题,但这是一个养成的好习惯。
推荐阅读
- android - 有没有办法在使用木材为 android 的发布版本中记录文件名?
- python - 遍历枚举列表 - 如何跳过一个数字?
- algorithm - 持续资源分配/背包问题
- powershell - WSL 上的已删除 Shell 且无法访问 WSL
- java - 从 AbstractTableModel 扩展时如何切换 JTable 中复选框的值
- powershell - 将相同的字符串附加到PowerShell中CSV列中的所有变量
- scala - 编写 spark 脚本来读取文件
- php - 使用 get_the_term 获取所有父母和孩子
- file - WxWidgets,从文件中打印数据
- amazon-web-services - AWS 中的 Lambda 函数是否有 TIMEOUT 环境变量?