<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      原創企業級控件庫之組合查詢控件

      原創企業級控件庫之組合查詢控件

      發布日期:2010年12月10日星期五 作者:EricHu

       

        無論對于企業還是對于軟件開發者來說,擁有自己的一套常用控件庫,對于開發產品來說不僅可以縮短開發時間,提高開發效率,同時對一個企業整個產品的形象也會大大提高。本系列控件為作者在實際開發應用中總結出來,且成功應用于多個項目。現對整個控件庫一一講解,最后我會把整個控件庫開源,方便你的使用,同時會給一個綜合應用這些控件的實例。

        成就別人、等于成就自己。我沒什么要求,歡迎大家多多支持與評論,覺得不錯的,記得點擊文章左下角的”關注博客”,就這么簡單。

        整個控件樣式如下:

        說明:

        1、本控件分為組合查詢與固定查詢兩種,上圖為組合查詢。固定查詢見下圖。

        2、組合查詢以下幾部份組成:

      a.  查詢項:設置查詢的項目,通俗點就是表中的字段。

      b.  運算符:設置查詢條件,如:等于、大小、包含、為空等。

      c.  值:設置查詢的值。

      d.  組合方式:當查詢條件大于兩個時,其組合條件可設為:與方式、或方式、非方式三種。

      e.  新增:新增查詢條件到組合條件框。

      f.  清除:當輸入錯誤時,可以清除組合條件框中的組合查詢條件。

      g.  查詢:當用戶單擊查詢時,返回查詢表達式,供用戶使用。

      h.  固定查詢:當用戶單擊固定查詢時,控件變成固定查詢控件,同時,固定查詢變成“組合查詢”,如下圖:  

        3、本控件特點:

      a.  對用戶輸入的危險字符進行了屏蔽,可有效防止對數據庫的破壞。

      b.  控件返回的查詢條件都是合法的Sql語句中的Where條件表達式,可以直接使用。

      c.  開放源代碼,用戶可以根據自己的需要進行定制,消除你的后顧之優。

        4、本控件類圖如下所示:

      5、本控件核心代碼

      a. 得到組合查詢表達式

       

        	#region 組合查詢表達式
                /// <summary>
              /// 單擊[查詢]按鈕時發生
                /// </summary>
              [Category("組合查詢"), Description("單擊[查詢]按鈕時發生。"), Browsable(true)]
              public event EventHandler OnQueryClicked;
      
              private string _queryExpression;
              /// <summary>
              /// 最終的查詢表達式,可直接用于Where子句中
                /// </summary>
              [Category("組合查詢"), Description("最終的查詢表達式,可直接用于Where子句中。"), Browsable(false)]
              public string QueryExpression
              {
                  get { return _queryExpression; }
                  set
                  {
                      _queryExpression = value;
                      if (OnQueryClicked != null)
                      {
                          OnQueryClicked(this, null);
                      }
                  }
              }
       	#endregion  

      b. 設置查詢項中要顯示的數據列表

              #region 設置查詢項中要顯示的數據列表
               /// <summary>
              /// 設置查詢項中要顯示的數據列表(推薦使用這個方法)
              /// </summary>
              /// <param name="dicListQueryItems">表示鍵和值的集合(鍵:數據字段,值:數據字段對應的數據類型)</param>
              public void SetQueryItems(Dictionary<string, string> dicListQueryItems)
              {
                  cboQueryItems.Items.Clear();
                  dicQueryItem = null;
                  dicQueryItem = dicListQueryItems;
                  foreach (KeyValuePair<string, string> kvp in dicListQueryItems)
                  {
                      cboQueryItems.Items.Add(kvp.Key);
                  }
      
                  if (cboQueryItems.Items.Contains("案卷號"))//把案卷號顯示在第一個
                  {
                      cboQueryItems.Items.Remove("案卷號");
                      cboQueryItems.Items.Insert(0, "案卷號");
                  }
                  cboQueryItems.SelectedIndex = 0;
              }
      
              /// <summary>
              /// 設置查詢項中要顯示的數據列表
              /// </summary>
              /// <param name="sQueryItems">string類型數組</param>
              public void SetQueryItems(string[] sQueryItems)
              {
                  cboQueryItems.Items.Clear();
      
                  foreach (string queryItem in sQueryItems)
                  {
                      cboQueryItems.Items.Add(queryItem);
                  }
                  cboQueryItems.SelectedIndex = 0;
              }
      
              /// <summary>
              /// 設置查詢項中要顯示的數據列表
              /// </summary>
              /// <param name="listQueryItems">List泛型</param>
              public void SetQueryItems(List<string> listQueryItems)
              {
                  cboQueryItems.Items.Clear();
                  foreach (string queryItem in listQueryItems)
                  {
                      cboQueryItems.Items.Add(queryItem);
                  }
                  cboQueryItems.SelectedIndex = 0;
              }       
              #endregion  

      C.增加查詢條件

      代碼 
      
              #region 增加查詢條件單擊事件 btnAddQueryCondition_Click(object sender, EventArgs e)
      
              private void btnAddQueryCondition_Click(object sender, EventArgs e)
              {
                  if (cboQueryItems.Items.Count == 0)
                  {
                      DialogHelper.ShowErrorMsg("查詢項為空,不能進行查詢!");
                      return;
                  }
                  else
                  {
                      string sQueryItem = cboQueryItems.Text.Trim(); //要查詢的項
                      string sQueryValue = txtQueryValue.Text.Trim(); //查詢項的值
                      string sCombinMode = string.Empty; //組合方式
                      string sQueryExpress = string.Empty;//查詢條件表達式
      
                      if (cboOperator.Text != "為空" && cboOperator.Text != "不為空")
                      {
                          if (string.IsNullOrEmpty(txtQueryValue.Text.Trim()))
                          {
                              DialogHelper.ShowWarningMsg("必須輸入查詢項的值!");
                              txtQueryValue.Focus();
                              return;
                          }
                          else
                          {
                              if (StringHelper.HasDangerousWord(txtQueryValue.Text.Trim())) 
                              {
                                  DialogHelper.ShowWarningMsg("對不起,你的輸入含有危險字符,請重新輸入!");
                                  txtQueryValue.Clear();
                                  txtQueryValue.Focus();
                                  return;
                              }
                          }
                      }
      
                      switch (cboCombinMode.Text)
                      {
                          case "與方式":
                              sCombinMode = "AND";
                              break;
                          case "或方式":
                              sCombinMode = "OR";
                              break;
                          case "非方式":
                              sCombinMode = "AND NOT";
                              break;
                          default:
                              break;
                      }
                      #region 條件設置
                      switch (cboOperator.Text)
                      {
                          case "包含":
                              sQueryExpress = sQueryItem + " LIKE '%" + sQueryValue + "%'";
                              break;
                          case "左包含":
                              sQueryExpress = sQueryItem + " LIKE '" + sQueryValue + "%'";
                              break;
                          case "右包含":
                              sQueryExpress = sQueryItem + " LIKE '%" + sQueryValue + "'";
                              break;
                          case "為空":
                              sQueryExpress = sQueryItem + " IS NULL OR " + sQueryItem + "= ''";
                              break;
                          case "不為空":
                              sQueryExpress = sQueryItem + " IS NOT NULL And " + sQueryItem + "!= ''";
                              break;
                          case "大于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " >  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          if ((kvp.Value == "System.DateTime" || kvp.Value == "System.String")
                                              && kvp.Key != "案卷號") //kvp.Key != "案卷號"主是要因為案卷號是字符型,案卷號>'90',得不到正確結果,所以在此這樣做
                                          {
                                              sQueryExpress = sQueryItem + " >  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " >  " + sQueryValue;
                                          }
                                      }
                                  }
                              }
                              break;
                          case "大于或等于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " >=  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          if ((kvp.Value == "System.DateTime" || kvp.Value == "System.String") && kvp.Key != "案卷號")
                                          {
                                              sQueryExpress = sQueryItem + " >=  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " >=  " + sQueryValue;
                                          }
                                      }
                                  }
                              }
                              break;
                          case "等于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " =  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          //---3
                                          if (kvp.Value == "System.DateTime" || kvp.Value == "System.String")
                                          {
                                              sQueryExpress = sQueryItem + " =  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " =  " + sQueryValue;
                                          }
      
                                      }
                                  }
                              }
                              break;
                          case "小于或等于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " <=  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          if ((kvp.Value == "System.DateTime" || kvp.Value == "System.String") && kvp.Key != "案卷號")
                                          {
                                              sQueryExpress = sQueryItem + " <=  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " <=  " + sQueryValue;
                                          }
                                      }
                                  }
                              }
                              break;
                          case "小于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " <  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          if ((kvp.Value == "System.DateTime" || kvp.Value == "System.String") && kvp.Key != "案卷號")
                                          {
                                              sQueryExpress = sQueryItem + " <  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " <  " + sQueryValue;
                                          }
                                      }
                                  }
                              }
                              break;
                          default:
                              break;
                      }
      
                      if (!string.IsNullOrEmpty(txtQueryCondition.Text.Trim()))
                      {
                          sQueryExpress = sCombinMode + " " + sQueryExpress;
                      }               
      
                      txtQueryCondition.AppendText(" " + sQueryExpress);
                      #endregion
                  }
              }
              #endregion  

      6、 控件編譯后,你可把編譯后的dll文件直接拖運到Microsoft Visual Studi工具箱中,就可以看到我們的組合查詢控件了。在實際應用中,僅需以下兩個步驟即可完成整個代碼。

      a.在窗體社會分配加載時綁定相應的查詢項

       

      代碼 
      
              /// <summary>
              /// 增加測試數據
              /// </summary>
              private void BindTestData()
              {
                  dtTest = new DataTable();
                  dtTest.Columns.Add(new DataColumn("身份證號", typeof(System.String)));
                  dtTest.Columns.Add(new DataColumn("姓名", typeof(System.String)));
                  dtTest.Columns.Add(new DataColumn("QQ", typeof(System.String)));
                  dtTest.Columns.Add(new DataColumn("年齡", typeof(System.Int16)));
                  dtTest.Columns.Add(new DataColumn("出生時間", typeof(System.DateTime)));
              }
      
              private void FrmUcCombinQueryTest_Shown(object sender, EventArgs e)
              {
                  BindTestData();
      
                  //綁定查詢項
                  Dictionary<string, string> dicListQueryItems = new Dictionary<string, string>();
                  foreach (DataColumn dc in dtTest.Columns)
                  {
                      dicListQueryItems.Add(dc.ColumnName, dc.DataType.ToString());
                  }
                  ucCombinQueryTest.SetQueryItems(dicListQueryItems);
              }  

      b.單擊查詢時,返回給用戶的查詢表達式,用戶直接得到使用,在組合查詢的OnQueryClicked事件代碼中進行處理。 

      privatevoid ucCombinQueryTest_OnQueryClicked(object sender, EventArgs e)
      {
      //得到查詢表達式
      MessageBox.Show(ucCombinQueryTest.QueryExpression);
      }

      7、下面給出組合查詢控件完整代碼

       

      #region  版權信息
      /*---------------------------------------------------------------------*
      // Copyright (C) 2008 http://www.rzrgm.cn/huyong
      // 版權所有。 
      // 項目  名稱:《Winform通用控件庫》
      // 文  件  名: UcCombinQuery.cs
      // 類  全  名: DotNet.Controls.UcCombinQuery 
      // 描      述:  組合查詢控件
      // 創建  時間: 2008-08-05
      // 創建人信息: [**** 姓名:胡勇 QQ:406590790 E-Mail:406590790@qq.com *****]
      *----------------------------------------------------------------------*/
      #endregion
      
      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Drawing;
      using System.Data;
      using System.Text;
      using System.Windows.Forms;
      using DotNet.Common;
      
      namespace DotNet.Controls
      {
          /// <summary>
          /// 組合查詢控件
          /// UcCombinQuery
          /// 修改紀錄
          ///     2010-12-6  胡勇 優化相關代碼。
          ///     2010-11-29 胡勇 取消對:清除組合查詢條件時的提示。
          ///     2010-11-8  胡勇 要是查詢項中包含"案卷號",則把案卷號移動到第一個查詢項。
          ///     2010-11-5  胡勇 對案卷號的查詢,不加單引號。
          ///     2010-8-30  胡勇 對查詢字符型字段進行>、<、>=、<=、=操作時,其值自動加單引號。
          ///     2008-08-05 胡勇 創建組合查詢控件
          /// <author>
          ///     <name>胡勇</name>
          ///     <QQ>406590790</QQ>
          ///     <Email>406590790@qq.com</Email>
          /// </author>
          /// </summary>
          [ToolboxItem(true)]
          [DefaultEvent("OnQueryClicked")]
          [ToolboxBitmap(typeof(UcCombinQuery), "DotNet.Controls.Images.UcCombinQuery.bmp")]
          [Description("組合查詢控件")]
          public partial class UcCombinQuery : UserControl
          { 
              #region 公共變量
              Dictionary<string, string> dicQueryItem = new Dictionary<string, string>();
              #endregion
      
              #region 公共方法
              /// <summary>
              /// 查詢模式
              /// </summary>
              public enum QueryMode
              {
                  /// <summary>
                  /// 固定查詢
                  /// </summary>
                  FixQueryMode       = 0x0001,
                  /// <summary>
                  /// 組合查詢
                  /// </summary>
                  CompositeQueryMode = 0x0002
              }
      
              /// <summary>
              /// 設置查詢模式
              /// </summary>
              /// <param name="queryMode">查詢模式</param>
              public void SetQueryMode(QueryMode queryMode)
              {
                  if (queryMode == QueryMode.FixQueryMode)
                  {
                      btnQueryMode.Text = "固定查詢";
                  }
                  else
                  {
                      btnQueryMode.Text = "組合查詢";
                  }
                  btnQueryMode_Click(null, null);
              }
              #endregion
      
              #region 可見性屬性
              private bool _QueryModeButtomVisible = true;
              /// <summary>
              /// 組合查詢按鈕是否可見
              /// </summary>
              [Category("組合查詢"), Description("組合查詢是否可見。")]
              public bool QueryModeButtomVisible
              {
                  get
                  {
                      return _QueryModeButtomVisible;
                  }
                  set
                  {
                      _QueryModeButtomVisible = value;
                      if (!_QueryModeButtomVisible)
                      {
                          toolStripSeparator1.Visible = false;
                      }
                      this.btnQueryMode.Visible = _QueryModeButtomVisible;
                  }
              }
              #endregion
      
              #region 構造函數
              public UcCombinQuery()
              {
                  InitializeComponent();
              }
              #endregion
      
              #region 組合查詢表達式
              /// <summary>
              /// 單擊[查詢]按鈕時發生
              /// </summary>
              [Category("組合查詢"), Description("單擊[查詢]按鈕時發生。"), Browsable(true)]
              public event EventHandler OnQueryClicked;
      
              private string _queryExpression;
              /// <summary>
              /// 最終的查詢表達式,可直接用于Where子句中
              /// </summary>
              [Category("組合查詢"), Description("最終的查詢表達式,可直接用于Where子句中。"), Browsable(false)]
              public string QueryExpression
              {
                  get { return _queryExpression; }
                  set
                  {
                      _queryExpression = value;
                      if (OnQueryClicked != null)
                      {
                          OnQueryClicked(this, null);
                      }
                  }
              }
              #endregion
      
              #region 查詢項相關控制
      
              #region 設置查詢項中要顯示的數據列表
              /// <summary>
              /// 設置查詢項中要顯示的數據列表(推薦使用這個方法)
              /// </summary>
              /// <param name="dicListQueryItems">表示鍵和值的集合(鍵:數據字段,值:數據字段對應的數據類型)</param>
              public void SetQueryItems(Dictionary<string, string> dicListQueryItems)
              {
                  cboQueryItems.Items.Clear();
                  dicQueryItem = null;
                  dicQueryItem = dicListQueryItems;
                  foreach (KeyValuePair<string, string> kvp in dicListQueryItems)
                  {
                      cboQueryItems.Items.Add(kvp.Key);
                  }
      
                  if (cboQueryItems.Items.Contains("案卷號"))//把案卷號顯示在第一個
                  {
                      cboQueryItems.Items.Remove("案卷號");
                      cboQueryItems.Items.Insert(0, "案卷號");
                  }
                  cboQueryItems.SelectedIndex = 0;
              }
      
              /// <summary>
              /// 設置查詢項中要顯示的數據列表
              /// </summary>
              /// <param name="sQueryItems">string類型數組</param>
              public void SetQueryItems(string[] sQueryItems)
              {
                  cboQueryItems.Items.Clear();
      
                  foreach (string queryItem in sQueryItems)
                  {
                      cboQueryItems.Items.Add(queryItem);
                  }
                  cboQueryItems.SelectedIndex = 0;
              }
      
              /// <summary>
              /// 設置查詢項中要顯示的數據列表
              /// </summary>
              /// <param name="listQueryItems">List泛型</param>
              public void SetQueryItems(List<string> listQueryItems)
              {
                  cboQueryItems.Items.Clear();
                  foreach (string queryItem in listQueryItems)
                  {
                      cboQueryItems.Items.Add(queryItem);
                  }
                  cboQueryItems.SelectedIndex = 0;
              }       
              #endregion
      
              /// <summary>
              /// 設置查詢項的選擇索引項
              /// </summary>
              /// <param name="index">索引的下標</param>
              public void SetQueryItemsSelectIndex(int index)
              {
                  this.cboQueryItems.SelectedIndex = index;        
              }
      
              /// <summary>
              /// 設置查詢項的選擇內容
              /// </summary>
              /// <param name="sTxt">查詢項選中的內容</param>
              public void SetQueryItemSelectText(string sTxt)
              {
                  this.cboQueryItems.SelectedText =sTxt;
              }
      
              /// <summary>
              /// 清空選項值
              /// </summary>
              public void ClearQueryItems()
              {
                  cboQueryItems.Items.Clear();
              }
              #endregion
      
              #region 事件代碼
      
              #region 窗體Load事件 UcCombinQuery_Load(object sender, EventArgs e)
              private void UcCombinQuery_Load(object sender, EventArgs e)
              {
                  this.Height = 25;
              }
              #endregion
      
              #region 設置查詢模式(組合查詢或固定查詢:btnQueryMode_Click(object sender, EventArgs e)
              private void btnQueryMode_Click(object sender, EventArgs e)
              {
                  cboQueryItems.Focus();
                  //spContainerHorizontal.Panel2Collapsed = !spContainerHorizontal.Panel2Collapsed;
                  lblOperator.Visible = !lblOperator.Visible;
                  cboOperator.Visible = !cboOperator.Visible;
                  lblCombinMode.Visible = !lblCombinMode.Visible;
                  cboCombinMode.Visible = !cboCombinMode.Visible;
                  sp1.Visible = !sp1.Visible;
                  if (btnQueryMode.Text == "固定查詢")
                  {
                      btnQueryMode.Text = "組合查詢";
                      btnAddQueryCondition.Visible = !btnAddQueryCondition.Visible;
                      btnClsQueryCondition.Visible = !btnClsQueryCondition.Visible;
                      this.Height = 25;
                      btnQueryMode.Image = DotNet.Controls.Properties.Resources.組合查詢;//導入圖片
                  }
                  else if (btnQueryMode.Text == "組合查詢")
                  {
                      txtQueryCondition.Clear();
                      cboOperator.SelectedIndex = 0;
                      cboCombinMode.SelectedIndex = 0;
                      btnAddQueryCondition.Visible = !btnAddQueryCondition.Visible;
                      btnClsQueryCondition.Visible = !btnClsQueryCondition.Visible;
                      this.Height = 86;
                      btnQueryMode.Text = "固定查詢";
                      btnQueryMode.Image = DotNet.Controls.Properties.Resources.固定查詢;
                  }
              }
              #endregion
      
              #region 增加查詢條件單擊事件 btnAddQueryCondition_Click(object sender, EventArgs e)
      
              private void btnAddQueryCondition_Click(object sender, EventArgs e)
              {
                  if (cboQueryItems.Items.Count == 0)
                  {
                      DialogHelper.ShowErrorMsg("查詢項為空,不能進行查詢!");
                      return;
                  }
                  else
                  {
                      string sQueryItem = cboQueryItems.Text.Trim(); //要查詢的項
                      string sQueryValue = txtQueryValue.Text.Trim(); //查詢項的值
                      string sCombinMode = string.Empty; //組合方式
                      string sQueryExpress = string.Empty;//查詢條件表達式
      
                      if (cboOperator.Text != "為空" && cboOperator.Text != "不為空")
                      {
                          if (string.IsNullOrEmpty(txtQueryValue.Text.Trim()))
                          {
                              DialogHelper.ShowWarningMsg("必須輸入查詢項的值!");
                              txtQueryValue.Focus();
                              return;
                          }
                          else
                          {
                              if (StringHelper.HasDangerousWord(txtQueryValue.Text.Trim())) 
                              {
                                  DialogHelper.ShowWarningMsg("對不起,你的輸入含有危險字符,請重新輸入!");
                                  txtQueryValue.Clear();
                                  txtQueryValue.Focus();
                                  return;
                              }
                          }
                      }
      
                      switch (cboCombinMode.Text)
                      {
                          case "與方式":
                              sCombinMode = "AND";
                              break;
                          case "或方式":
                              sCombinMode = "OR";
                              break;
                          case "非方式":
                              sCombinMode = "AND NOT";
                              break;
                          default:
                              break;
                      }
                      #region 條件設置
                      switch (cboOperator.Text)
                      {
                          case "包含":
                              sQueryExpress = sQueryItem + " LIKE '%" + sQueryValue + "%'";
                              break;
                          case "左包含":
                              sQueryExpress = sQueryItem + " LIKE '" + sQueryValue + "%'";
                              break;
                          case "右包含":
                              sQueryExpress = sQueryItem + " LIKE '%" + sQueryValue + "'";
                              break;
                          case "為空":
                              sQueryExpress = sQueryItem + " IS NULL OR " + sQueryItem + "= ''";
                              break;
                          case "不為空":
                              sQueryExpress = sQueryItem + " IS NOT NULL And " + sQueryItem + "!= ''";
                              break;
                          case "大于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " >  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          if ((kvp.Value == "System.DateTime" || kvp.Value == "System.String")
                                              && kvp.Key != "案卷號") //kvp.Key != "案卷號"主是要因為案卷號是字符型,案卷號>'90',得不到正確結果,所以在此這樣做
                                          {
                                              sQueryExpress = sQueryItem + " >  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " >  " + sQueryValue;
                                          }
                                      }
                                  }
                              }
                              break;
                          case "大于或等于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " >=  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          if ((kvp.Value == "System.DateTime" || kvp.Value == "System.String") && kvp.Key != "案卷號")
                                          {
                                              sQueryExpress = sQueryItem + " >=  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " >=  " + sQueryValue;
                                          }
                                      }
                                  }
                              }
                              break;
                          case "等于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " =  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          //---3
                                          if (kvp.Value == "System.DateTime" || kvp.Value == "System.String")
                                          {
                                              sQueryExpress = sQueryItem + " =  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " =  " + sQueryValue;
                                          }
      
                                      }
                                  }
                              }
                              break;
                          case "小于或等于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " <=  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          if ((kvp.Value == "System.DateTime" || kvp.Value == "System.String") && kvp.Key != "案卷號")
                                          {
                                              sQueryExpress = sQueryItem + " <=  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " <=  " + sQueryValue;
                                          }
                                      }
                                  }
                              }
                              break;
                          case "小于":
                              if (dicQueryItem.Count == 0)
                              {
                                  sQueryExpress = sQueryItem + " <  " + sQueryValue;
                              }
                              else
                              {
                                  foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                  {
                                      if (cboQueryItems.Text == kvp.Key)
                                      {
                                          if ((kvp.Value == "System.DateTime" || kvp.Value == "System.String") && kvp.Key != "案卷號")
                                          {
                                              sQueryExpress = sQueryItem + " <  '" + sQueryValue + "'";
                                          }
                                          else
                                          {
                                              sQueryExpress = sQueryItem + " <  " + sQueryValue;
                                          }
                                      }
                                  }
                              }
                              break;
                          default:
                              break;
                      }
      
                      if (!string.IsNullOrEmpty(txtQueryCondition.Text.Trim()))
                      {
                          sQueryExpress = sCombinMode + " " + sQueryExpress;
                      }               
      
                      txtQueryCondition.AppendText(" " + sQueryExpress);
                      #endregion
                  }
              }
              #endregion
      
              #region 清除查詢條件 btnClsQueryCondition_Click(object sender, EventArgs e)
              //清除查詢條件
              private void btnClsQueryCondition_Click(object sender, EventArgs e)
              {
                  if (txtQueryCondition.Text.Trim() != string.Empty)
                  {
                      txtQueryCondition.Clear();
                  }
              }
              #endregion
      
              #region 查詢單擊事件 btnQuery_Click(object sender, EventArgs e)
              private void btnQuery_Click(object sender, EventArgs e)
              {
                  if (cboQueryItems.Items.Count == 0)
                  {
                      DialogHelper.ShowErrorMsg("查詢項為空!");
                      return;
                  }
                  else
                  {
                      if (btnQueryMode.Text == "組合查詢")
                      {
                          if (string.IsNullOrEmpty(txtQueryValue.Text.Trim()))
                          {
                              QueryExpression = "1 = 1";
                              return;
                          }
                          else
                          {
                              if (StringHelper.HasDangerousWord(txtQueryValue.Text.Trim())) //危險字符判斷
                              {
                                  DialogHelper.ShowWarningMsg("對不起,你的輸入包含危險字符,請重新輸入!");
                                  txtQueryValue.Clear();
                                  txtQueryValue.Focus();
                                  return;
                              }
                              else
                              {
                                  if (dicQueryItem.Count == 0)
                                  {
                                      QueryExpression = cboQueryItems.Text + " = '" + txtQueryValue.Text.Trim() + "'";//精確查詢
                                  }
                                  else
                                  {
                                      foreach (KeyValuePair<string, string> kvp in dicQueryItem)
                                      {
                                          if (cboQueryItems.Text == kvp.Key)
                                          {
                                              if (kvp.Value == "System.DateTime")
                                              {
                                                  QueryExpression = cboQueryItems.Text + " =  '" + txtQueryValue.Text.Trim() + "'";//精確查詢
                                              }
                                              else
                                              {
                                                  QueryExpression = cboQueryItems.Text + " = '" + txtQueryValue.Text.Trim() + "'";//精確查詢
                                              }
                                          }
                                      }
                                  }
                              }
                          }
                      }
                      else
                      {
                          if (string.IsNullOrEmpty(txtQueryCondition.Text.Trim()))
                          {
                              if (cboOperator.Text != "為空" && cboOperator.Text != "不為空")
                              {
                                  if (txtQueryValue.Text.Trim() == string.Empty)
                                  {
                                      DialogHelper.ShowWarningMsg("必須輸入查詢項的值!");
                                      txtQueryValue.Focus();
                                      return;
                                  }
                                  else
                                  {
                                      if (StringHelper.HasDangerousWord(txtQueryValue.Text.Trim()))
                                      {
                                          DialogHelper.ShowWarningMsg("對不起,你的輸入含有危險字符,請重新輸入!");
                                          txtQueryValue.Clear();
                                          txtQueryValue.Focus();
                                          return;
                                      }
                                      else
                                      {
                                          btnAddQueryCondition_Click(sender, e);
                                      }
                                  }
                              }
                              else
                              {
                                  btnAddQueryCondition_Click(sender, e);
                              }
                          }
                          QueryExpression = txtQueryCondition.Text.Trim();
                      }
                  }
              }
              #endregion
      
              #endregion
          }
      }
      

       

        

       

       

       

      posted @ 2010-12-10 23:02  .NET快速開發框架  閱讀(5509)  評論(34)    收藏  舉報
      主站蜘蛛池模板: 色综合天天综合天天综 | 国产精品久久久久影院色| 中文字幕人妻精品在线| 中文字幕在线精品视频入口一区| 国产午夜精品理论大片| 人妻出轨av中文字幕| 国产999久久高清免费观看| 国产熟睡乱子伦视频在线播放 | 国产精品中文一区二区| 元谋县| 成人国产亚洲精品一区二区| 无码国产偷倩在线播放| 藁城市| 国产亚洲精品97在线视频一| 国产日韩一区二区天美麻豆| 深夜精品免费在线观看| 国产在线精彩自拍视频| 亚洲欧美日韩综合久久| 18禁无遮拦无码国产在线播放 | 高清国产美女一级a毛片在线| 无码人妻斩一区二区三区| 国产乱码精品一区二区麻豆| 亚洲高潮喷水无码AV电影| 亚洲av片在线免费观看| 国产精品福利自产拍久久| 胸大美女又黄的网站| 色综合久久综合香蕉色老大| 亚洲中文精品一区二区| 福建省| 亚洲国产精品一区二区第一页| 国产成人不卡无码免费视频| 99久久无码私人网站| 国内熟妇人妻色在线视频| 国产女人在线视频| 精品精品亚洲高清a毛片| 日韩精品中文字幕有码| 景东| 国产亚洲精品久久久久秋霞| 亚洲精品乱码久久久久久按摩高清| 中文字幕无码成人免费视频| 国产成人欧美日韩在线电影|