public DataTable GetOneDataFromTable(string TableName, string[] ElementName,string[] ElementValue)
{
//foreach(String s in ElementName)
StringBuilder sb = new StringBuilder();
sb.Append = "select * from " + TableName + " where ";
sb.Append=""
DataTable dt = Tatest.DBUtility.DbHelperOleDb.GetDataTable(strSql);
return dt;
}我想做到几个元素的到sql内查询但是不知道需要用到多少个元素 我想这样写到类中 方便以后使用 我想把元素都设置成数组 这里该怎么写呢 或者说不用数组有什么方法好实现吗?
解决方案 »
- AspxGridview 分页问题。迷惑中。。。。
- 有什么方法知道表之间的关系吗?
- 关于小版块的排行榜(前10小图标的显示)。怎么弄呢?
- 新手问题:如何通过url重写 列表中的链接
- 小问题
- 请问怎样可以在关闭IE时加个确认啊?
- asp.net 2.0指的是什么
- 大家帮我看看,真的不行了,datagrid老是取不到编辑状态下的值,datalist也是一样,要命!!!
- 我在页面上创建TreeView控件,但是为什么找不到所创建的TreeView控件,在线等哦哦~~~
- 100 分 求救!!!!!!小弟刚刚开始学习.net 想找套功能齐全的小型购物网站源代码,大家帮个忙啊!!
- 嘿嘿 又是我, 这次是新的问题 望各位大虾 解答
- c#怎样在后台写类似前台<a href target>?
再遍历数组把他们加进where条件时,没什么影响吧
是拼接where条件的意思 吗
{
if(a.Length!=ElementValue.length)
{
new throw new Exception("字段类型和值的数量不匹配");
}
list<string> whereParm =new List<string>();
for(int i=0;i<ElementName.length;i++)
{
if(ElementValue[i] is string)
whereParm.add(String.Format("{0}='{1}'",ElementName[i],ElementValue[i]));
if(if(ElementValue[i] is int32)
whereParm.add(String.Format("{0}={1}",ElementName[i],ElementValue[i]));
//后面可能有其他类型判定,你自己补足
) string wherestr=string.join(" and ",whereParm)
}
}
ps:这种方式其实并不太好,除了上面的毛病以外,同时你还只能处理单一的逻辑,比如只能用 and,不能用and,or混排,不能用like等等。实际上目前这种方式已经被放弃了,大多数我们直接使用Expreesion表达式去解析
比如GetOneDataFromTable(c=>c.xxx=="1"&&c.yy==2);这样你的逻辑上可以使用的东西要丰富的多。
有关这方面的例子可以看http://www.cnblogs.com/coolcode/archive/2011/06/08/IQueryBuilder_v2.html