为什么我删除了listview中的值,数据库中没删除呢

string connstr = "Provider=Microsoft.Jet.OleDb.4.0;";
connstr += @"Data Source=D:\Merger20150208_caohuan\GEARCNC.mdb";
OleDbConnection tempconn = new OleDbConnection(connstr);//连接数据库

            OleDbDataAdapter thisAdapter = new OleDbDataAdapter("select * from GrindingWheelInformation", tempconn);

            OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);//CommandBuilder用来创建SQL指令,与DataAdapter相关联

            DataSet thisDataSet = new DataSet();
            thisAdapter.Fill(thisDataSet, "GrindingWheelInformation");//MY_N_AIT不是表名而是DataTable对象的名称


            listView1.Items.Remove(listView1.SelectedItems[0]);
            thisAdapter.Update(thisDataSet, "GrindingWheelInformation");//跟新数据库中的值

7个回答

你只执行了listView1.Items.Remove,没看到执行delete的sql

caohuan95568
caohuan95568 恩,我就是不知道怎么用SQL语句写删除当前选中的行
大约 5 年之前 回复

你应该要在执行listview的item删除时再执行数据库的操作。要在listView1.Items.Remove(listView1.SelectedItems[0]);后面添加删除数据库的语句

怎么还在删呢,花个一天时间看一下数据库基础吧

caohuan95568
caohuan95568 能推介个有关这个的资料看看嘛
大约 5 年之前 回复

没有delete的指令怎么会删除

OleDbDataAdapter thisAdapter = new OleDbDataAdapter("select * from GrindingWheelInformation", tempconn);
和这个差不多 换掉语句 改成 delete 语句比如
("delete * from GrindingWheelInformation", tempconn);

你只是对控件进行了删除操作,没有对数据库进行操作

在删除listview中的值的同时,调用SQL删除

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Merger20150208_caohuan\GEARCNC.mdb";
OleDbConnection connection = new OleDbConnection(strConn);
string sql = "delete from GrindingWheelInformation where id=@name";
if (connection.State != ConnectionState.Open)
connection.Open();
OleDbCommand cmd = new OleDbCommand(sql, connection);
cmd.Parameters.AddWithValue("@name", listView1.SelectedItems[0]);
cmd.ExecuteNonQuery();
connection.Close();
MessageBox.Show("删除完毕!!!");

caohuan95568
caohuan95568 您写 的代码中第三行的id是怎么来的
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问