#region 组合查询条件
/// <summary>
/// 根据控件是否为空组合查询条件.
/// </summary>
/// <param name="GBox">GroupBox控件的数据集</param>
/// <param name="TName">获取信息控件的部份名称</param>
/// <param name="TName">查询关系</param>
public void Find_Grids(Control.ControlCollection GBox, string TName, string ANDSign)
{
string sID = ""; //定义局部变量
if (FindValue.Length>0)
FindValue = FindValue + ANDSign;
foreach (Control C in GBox){ //遍历控件集上的所有控件
if (C.GetType().Name == "TextBox" | C.GetType().Name == "ComboBox"){ //判断是否要遍历的控件
if (C.GetType().Name == "ComboBox" && C.Text!=""){ //当指定控件不为空时
sID = C.Name;
if (sID.IndexOf(TName) > -1){ //当TName参数是当前控件名中的部分信息时
string[] Astr = sID.Split(Convert.ToChar('_')); //用“_”符号分隔当前控件的名称,获取相应的字段名
FindValue = FindValue + "(" + Astr[1] + " = '" + C.Text + "')" + ANDSign; //生成查询条件
}
}
if (C.GetType().Name == "TextBox" && C.Text != "") //如果当前为TextBox控件,并且控件不为空
{
sID = C.Name; //获取当前控件的名称
if (sID.IndexOf(TName) > -1) //判断TName参数值是否为当前控件名的子字符串
{
string[] Astr = sID.Split(Convert.ToChar('_')); //以“_”为分隔符,将控件名存入到一维数组中
string m_Sgin = ""; //用于记录逻辑运算符
string mID = ""; //用于记录字段名
if (Astr.Length > 2) //当数组的元素个数大于2时
mID = Astr[1] + "_" + Astr[2]; //将最后两个元素组成字段名
else
mID = Astr[1]; //获取当前条件所对应的字段名称
foreach (Control C1 in GBox) //遍历控件集
{
if (C1.GetType().Name == "ComboBox") //判断是否为ComboBox组件
if ((C1.Name).IndexOf(mID) > -1) //判断当前组件名是否包含条件组件的部分文件名
{
if (C1.Text == "") //当查询条件为空时
break; //退出本次循环
else
{
m_Sgin = C1.Text; //将条件值存储到m_Sgin变量中
break;
}
}
}
if (m_Sgin != "") //当该务件不为空时
FindValue = FindValue + "(" + mID + m_Sgin + C.Text + ")" + ANDSign; //组合SQL语句的查询条件
}
}
}
}
if (FindValue.Length > 0) //当存储查询条的变量不为空时,删除逻辑运算符AND和OR
{
if (FindValue.IndexOf("AND") > -1) //判断是否用AND连接条件
FindValue = FindValue.Substring(0, FindValue.Length - 4);
if (FindValue.IndexOf("OR") > -1) //判断是否用OR连接条件
FindValue = FindValue.Substring(0, FindValue.Length - 3);
}
else
FindValue = "";
}
#endregion
请问1。ANDSign是and , or运算符吗?
2.
FindValue = FindValue + "(" + Astr[1] + " = '" + C.Text + "')" + ANDSig里面第1个findvalue有逻辑运算符了,最后还有一个andsig运算符?
/// <summary>
/// 根据控件是否为空组合查询条件.
/// </summary>
/// <param name="GBox">GroupBox控件的数据集</param>
/// <param name="TName">获取信息控件的部份名称</param>
/// <param name="TName">查询关系</param>
public void Find_Grids(Control.ControlCollection GBox, string TName, string ANDSign)
{
string sID = ""; //定义局部变量
if (FindValue.Length>0)
FindValue = FindValue + ANDSign;
foreach (Control C in GBox){ //遍历控件集上的所有控件
if (C.GetType().Name == "TextBox" | C.GetType().Name == "ComboBox"){ //判断是否要遍历的控件
if (C.GetType().Name == "ComboBox" && C.Text!=""){ //当指定控件不为空时
sID = C.Name;
if (sID.IndexOf(TName) > -1){ //当TName参数是当前控件名中的部分信息时
string[] Astr = sID.Split(Convert.ToChar('_')); //用“_”符号分隔当前控件的名称,获取相应的字段名
FindValue = FindValue + "(" + Astr[1] + " = '" + C.Text + "')" + ANDSign; //生成查询条件
}
}
if (C.GetType().Name == "TextBox" && C.Text != "") //如果当前为TextBox控件,并且控件不为空
{
sID = C.Name; //获取当前控件的名称
if (sID.IndexOf(TName) > -1) //判断TName参数值是否为当前控件名的子字符串
{
string[] Astr = sID.Split(Convert.ToChar('_')); //以“_”为分隔符,将控件名存入到一维数组中
string m_Sgin = ""; //用于记录逻辑运算符
string mID = ""; //用于记录字段名
if (Astr.Length > 2) //当数组的元素个数大于2时
mID = Astr[1] + "_" + Astr[2]; //将最后两个元素组成字段名
else
mID = Astr[1]; //获取当前条件所对应的字段名称
foreach (Control C1 in GBox) //遍历控件集
{
if (C1.GetType().Name == "ComboBox") //判断是否为ComboBox组件
if ((C1.Name).IndexOf(mID) > -1) //判断当前组件名是否包含条件组件的部分文件名
{
if (C1.Text == "") //当查询条件为空时
break; //退出本次循环
else
{
m_Sgin = C1.Text; //将条件值存储到m_Sgin变量中
break;
}
}
}
if (m_Sgin != "") //当该务件不为空时
FindValue = FindValue + "(" + mID + m_Sgin + C.Text + ")" + ANDSign; //组合SQL语句的查询条件
}
}
}
}
if (FindValue.Length > 0) //当存储查询条的变量不为空时,删除逻辑运算符AND和OR
{
if (FindValue.IndexOf("AND") > -1) //判断是否用AND连接条件
FindValue = FindValue.Substring(0, FindValue.Length - 4);
if (FindValue.IndexOf("OR") > -1) //判断是否用OR连接条件
FindValue = FindValue.Substring(0, FindValue.Length - 3);
}
else
FindValue = "";
}
#endregion
请问1。ANDSign是and , or运算符吗?
2.
FindValue = FindValue + "(" + Astr[1] + " = '" + C.Text + "')" + ANDSig里面第1个findvalue有逻辑运算符了,最后还有一个andsig运算符?
解决方案 »
- JS 自动调用了后台代码
- 求解!使用CLR调用C#写的DLL,报错system.io.filenotfoundexception
- 如何把一个数据库中的数据导入到另一个数据库
- 同步Lock()
- 如何在父窗体的ListView中获取子窗体中datagridview中的值
- 如何保存剪贴板中的数据(任意格式)并读取出来?
- “Design”在类或命名空间“System.Web.UI”中不存在?
- 高手指点!!!谢谢谢谢!!!
- 高分100求编程思路,关于catch 异常的问题。
- 怎样实现.Net Studio中的颜色设置下拉列表框?
- MVC 中如何点击<table>的一行获取此行某一列的值?
- XML文件被XmlTextReader类读取后,怎样以表格形式输出
2 可以出现多个AND运算符,比如
name='a' AND sex=0 AND age=15