我在 WCF 服务上有接受四个参数的方法。方法将处理更新语句以更新 MS SQL 数据库中的数据。我遇到的问题是我找不到将子句作为参数发送的方法。问题是 WCF 不能接受 QueryBuilder 的对象,因为它们不能被序列化。WCF 上的方法将从 asp.net 客户端页面调用(没有 ajax 内容)。
- 表(字符串)
- 列(字符串 [])
- 值(字符串 [])
- 子句 (????)
WHERE 子句应该类似于三维数组示例:
clause.Add("users.id","=",1);
我目前缺少子句的方法
public bool SqlUpdate(string table, string[] columns, string[] values,??? clause)
{
bool success = false;
DbDataReader dbDataReader = null;
try
{
DbCommand command = new System.Data.SqlClient.SqlCommand();
UpdateQueryBuilder update = new UpdateQueryBuilder();
update.SetTable("users");
update.AddAssignment("firstName", "ChangedName");
//loop through clauses (it can have multiple clauses) if necessary
update.Where = new SimpleWhere("users", "id", Comparison.Equals, 4); //this is where I need to input clause
success = true;
}
catch (Exception ex)
{
WriteError(ex.ToString());
success = false;
}
return success;
}
UpdateQueryBuilder() 是 code-engine.com 创建参数化查询的类。源代码可以在这里找到