DataTable 中如何按行的内容删除 如像SQLSERVER 中的"delete from mytable where id=23"
答案:2 悬赏:60
解决时间 2021-02-22 14:35
- 提问者网友:房东的猫
- 2021-02-22 10:02
我查了资料,只能根据行号来删除,但更多的情况下是要判断行的内容来删除的.
最佳答案
- 二级知识专家网友:滚刀废物浮浪人
- 2021-02-22 11:12
DataTable中是通过行号来删除行;可以对DataTable建立DataView,然后利用DataView的RowFilter属性来过滤掉不需要的行,然后再用DataView做数据源进行数据绑定
string sqlStr = "SELECt Columns FROM TableName";
string connStr = "ConnectionString";
SqlConnection conn = new SqlConnection(connStr);
SqlDataAdapter da = new SqlDataAdapter(sqlStr, conn);
DataSet ds = new DataSet();
da.Fill(ds);
DataView dv = new DataView();
dv.Table = ds.Tables[0];
dv.RowFilter = "id<>23"
string sqlStr = "SELECt Columns FROM TableName";
string connStr = "ConnectionString";
SqlConnection conn = new SqlConnection(connStr);
SqlDataAdapter da = new SqlDataAdapter(sqlStr, conn);
DataSet ds = new DataSet();
da.Fill(ds);
DataView dv = new DataView();
dv.Table = ds.Tables[0];
dv.RowFilter = "id<>23"
全部回答
- 1楼网友:而你却相形见绌
- 2021-02-22 11:29
这个感觉很简单,但是要借助datagridview数据组件,用commandbuilder对象进行更新,可以实现删除、更新、或者添加操作。比如,以sqlite数据库(与sqlserver数据库类似,体量小一些)为例:
static sqliteconnection conn = new sqliteconnection("data source=f:\\project\\data\\test;version=3;");
sqlitecommand cmd = new sqlitecommand("select * from usertab", conn);
sqlitedataadapter sda = new sqlitedataadapter();
dataset ds=new dataset();
private void form1_load(object sender, eventargs e)
{
conn.open();
sda.selectcommand = cmd;
sda.fill(ds,"usertab");
this.datagridview1.datasource = ds;
this.datagridview1.datamember = "usertab";
conn.close();
}
private void button1_click(object sender, system.eventargs e)
{
sqlitecommandbuilder scb = new sqlitecommandbuilder(sda);
scb.getupdatecommand();
sda.update(ds,"usertab");
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯