请问一下,我想实现,若是更新,就执行更新语句if update,到数据库;若是新增,就执行新增的插入语句if add,插入到数据库;若两者都不是,就认为是导入模板数据,也是插入到数据库里面,请问这个条件怎么表示呢;是,非以上两类?怎么表达呢;
```c#
if (dr.RowState == System.Data.DataRowState.Modified)//修改操作
{
strsql = @"UPDATE [dbo].[w_Qctable1]
SET [productcode] = '" + dr["productcode"].ToString() + @"'
,[productname] = '" + dr["productname"].ToString() + @"'
where id = '" + dr["id"].ToString() + "'";
}
if (dr.RowState == System.Data.DataRowState.Added)//增加操作
{
strsql = @"INSERT INTO [dbo].[w_Qctable1]
([productcode],[productname],[batchNo],[reportNo],[process],[mstr],[DT],[gl],[ph],[rd],[meoh],[PE],[result],[note],[date],[id])
values
('" + dr["productcode"].ToString() + @"'
,'" + dr["productname"].ToString() + @"'
,'" + Guid.NewGuid().ToString() + @"')";
}
if (???) //以上两者都不是,则执行导入模板数据的操作,请问这个条件,应该怎么表达;
```
若两者都不是,就认为是导入模板数据,也是插入到数据库里面,这个条件可以表达为:
c#
if (dr.RowState != DataRowState.Modified && dr.RowState != DataRowState.Added)
{
// 执行导入模板数据的插入操作
strsql = @"INSERT INTO [dbo].[w_Qctable1]
([productcode],[productname],[batchNo],[reportNo],[process],[mstr],[DT],[gl],[ph],[rd],[meoh],[PE],[result],[note],[date],[id])
values
('模板productcode'
,'模板productname'
,'模板batchNo'
,'" + Guid.NewGuid().ToString() + @"'
)";
}
即如果数据行的状态既不是`Modified`也不是`Added`,那么就认为是导入模板数据,执行插入模板数据的SQL语句。
这样就实现了你所说的:
- if update,就执行更新语句,到数据库
- if add,就执行新增的插入语句,插入到数据库
- 若两者都不是,就认为是导入模板数据,也是插入到数据库里面
的判断导入条件和相应的操作。