Sql 如何使用强类型数据集设计器配置多个更新?

Sql 如何使用强类型数据集设计器配置多个更新?,sql,strongly-typed-dataset,Sql,Strongly Typed Dataset,我正在使用强类型数据集作为ORM来包装我的Microsoft Access数据库,现在我正在寻找一种方法来创建 UPDATE table1 SET table1.nationality = 'england' WHERE table1.nationality in (SELECT table2.nationality FROM table2 WHERE table2.gende

我正在使用强类型数据集作为ORM来包装我的Microsoft Access数据库,现在我正在寻找一种方法来创建

UPDATE table1 
SET table1.nationality = 'england'
WHERE table1.nationality in (SELECT table2.nationality 
                             FROM table2
                             WHERE table2.gender ='M');
在强类型数据集设计器中,但不确定这是否可行

如果这是不可能的,那么完成这项任务的最佳方式是什么?我在逃避

  • 手工编码SQL
  • 存储过程
  • 尽我所能


    编辑:我不是说手工编写SQL是不允许的,只是说它不可取。存储过程也是如此。

    是否使用表适配器

    如果是这样的话,您可以不只是右键单击并选择addquery,选择newselect/Update/SQL语句,然后输入

    UPDATE table1 SET 
        table1.nationality = @nationality
    WHERE table1.nationality in (
        select table2.nationality 
        from table2 
        where table2.gender = @gender
    )
    
    UPDATE table1 SET 
        table1.nationality = ?
    WHERE table1.nationality in (
        select table2.nationality 
        from table2 
        where table2.gender = ?
    )
    
    给它一个合适的名字?这将生成一个表适配器方法,如

    updateNationalityByGender(string nationality, string gender)
    
    您需要使用表适配器的名称空间来访问它,例如

    using your.name.space.datasetname.datasetnametableadapter;
    

    LINQ to DataSet将是您的最佳选择

    1) 它都是强类型的。
    2)您可以使用IQueryable/LINQ/lambda进行查询
    3)您可以绑定到Access数据库

    Sql Express是免费的,使用它会更好。但如果我被迫使用Access,我会这样做


    就像史蒂文·阿洛所说的。。但是你使用MS acces。。所以参数必须是“?”

    右键单击适配器并选择添加查询,选择新建select/Update/SQL语句,然后输入

    UPDATE table1 SET 
        table1.nationality = @nationality
    WHERE table1.nationality in (
        select table2.nationality 
        from table2 
        where table2.gender = @gender
    )
    
    UPDATE table1 SET 
        table1.nationality = ?
    WHERE table1.nationality in (
        select table2.nationality 
        from table2 
        where table2.gender = ?
    )
    
    给它一个合适的名字,例如UpdateNationalItyBender

    updateNationalityByGender(string nationality, string gender)
    

    @[Ngu Soon Hui]:有什么不起作用的?这在我的机器上运行良好-但我使用的是SQL Server,而不是access…@[Ngu Soon Hui]:顺便说一句,向下投票并不鼓励我继续尝试帮助您;-)很抱歉我应该提到@gender在Microsoft Access中不起作用,我正在使用Microsoft Access。。。抱歉@[Ngu Soon Hui]:我的错误是,我不知道Access不支持@parm语法(我已经很多年没有使用Access了);谢谢(朱利安德维特):谢谢你把这件事弄清楚了!!