对数据表,想执行导入操作的条件,应该怎么表达;

请问一下,我想实现,若是更新,就执行更新语句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,就执行新增的插入语句,插入到数据库
- 若两者都不是,就认为是导入模板数据,也是插入到数据库里面
的判断导入条件和相应的操作。