日期:2014-05-17  浏览次数:20850 次

将一个SQL条件字符串转换成DbParameter
已经str是一个字符串格式是
string str = "a='a111' and b='222' and ccc=200";
是样的一个格式,可能条件会更多

现在想根据这个字条串条件生成DbParameter应该怎么写啊?
private DbParameter[] fun1(string str)
{
  如果传一个str过来(str的格式和上面的差不多,可能条件数量不固定),这里如何转换成DbParameter[]
}

------解决方案--------------------
 private DbParameter[] fun1(string str)
        {
            //string str = "a='a111' and b='222' and ccc=200";
            var array = Regex.Matches(str, @"([\w_]+)=([""']?)(.*?)\2(?=\s
------解决方案--------------------
$)").OfType<Match>().Select(t => new { field = t.Groups[1].Value, value = t.Groups[3].Value }).ToArray();
            if (array.Count() == 0)
                return null;

            DbParameter[] dbParameter = new DbParameter[array.Count()];

            for (int i = 0; i < array.Count(); i++)
            {
                dbParameter[i] = new DbParameter(array[i].field, array[i].value);
            }
            return dbParameter;
        }