带有大量参数的 C# SQL 插入

本文关键字:SQL 插入 参数 | 更新日期: 2023-09-27 18:32:17

有没有一种优雅的方式来编写一个有很多参数的插入语句?我有 20 个需要保存在数据库中的标志,以及还需要插入的其他信息,以及这 20 个标志。为该插入编写具有 30 个参数的方法是在浪费时间,但到目前为止,我还没有提出其他想法,这可能有效。

带有大量参数的 C# SQL 插入

您可以将所有这些参数放在一个对象中,并将该对象传递给该方法。

标准方法是创建一个表示实体的类,然后传递该类的实例。

这使得可以轻松传递给可以执行验证、表示等以及持久性的其他方法。

同意 Sachin,将您需要的 SqlParameters 列表封装在类中,然后

然后将实例传递给数据层,以便进一步处理 SQL 查询。

您可以创建一个接口,该接口表示可以插入到数据库中的对象类型,例如公开方法(如 getFields)的 Iinsertable。这样,您就可以创建实现此接口的实体。

使用这些实体,您可以在数据库层中创建一个接受 Iinsertable 作为参数的通用方法,该方法用于查询要在循环中使用 getFiels 方法插入的所有字段。这将使您的代码可重用于每种类型的实体,并且它将非常干净。

使用我的 SqlBuilder 类。它允许您编写参数化查询,而无需担心创建参数或它们的名称。

var bldr = new SqlBuilder( myCommand );
bldr.Append("SELECT * FROM CUSTOMERS WHERE ID = ").Value(myId, SqlDbType.Int);
//or
bldr.Append("SELECT * FROM CUSTOMERS NAME LIKE ").FuzzyValue(myName, SqlDbType.NVarChar);

您可以拥有任意数量的标志。每次要在查询中包含运行时值时,只需调用 Value() 即可。参数的创建是隐藏的,你只剩下一个整洁的SQL查询。

SqlBuilder 类的代码在这里