private void StartSearch(int Curpage) { //splashScreenManager.ShowWaitForm(); try { // Add by Wirachai T. 2007 09 26 DateTime dtProcessTime = DateTime.Now; // ============================= DataRequest request = new DataRequest(string.Empty); FindKeywordCollection keywords = CreateFindKeyWord(); m_selectedKeywords = keywords; if (this.CreateDataRequest != null) { CreateDataRequest(ref request, keywords); // Create request command from outside } else { request = CreateReqeustCommand(keywords); // Create request command by FindDialog } // kim change 20070815 //DataSet ds = m_findDialogDAO.GetDataSet(request); if (!IsPropertyEqual(request, m_request)) { m_ds = m_findDialogDAO.GetDataSet(request); m_request = request; } //End ------------------------------------------------------- // Modify by Wirachai T. 2007 09 26 : move from DisplaySearchResult for show real query time statusBar1.Panels[1].Text = "Query times " + Convert.ToString(DateTime.Now.Subtract(dtProcessTime)); // =========================================================================================== Curpage = (IsChangeParam(request) ? 1 : Curpage); pageNavigator.CurrentPage = Curpage; DisplaySearchResult(m_ds, Curpage); if (FinishedFillResult != null) { FinishedFillResult(grdResult, new EventArgs()); } } catch (Exception ex) { MessageDialog.ShowSystemErrorMsg(this, ex); } finally { } }
private DataRequest CreateReqeustCommand(FindKeywordCollection keys) { DataRequest req = null; switch (this.SelectedCommandType) { case CommandType.StoredProcedure: req = m_findDialogDAO.CreateRequestStoreCommand(this.MainSQL, keys); break; case CommandType.Text: req = m_findDialogDAO.CreateRequestTextCommand(this.MainSQL, this.AlreadyHaveWhereStatement, this.OptionalSQL, keys); break; } return(req); }
private FindKeywordCollection CreateFindKeyWord() { FindKeywordCollection keys = new FindKeywordCollection(); foreach (Control c in panelFindOptions.Controls) { if (c is PanelOption) { PanelOption po = (PanelOption)c; //Fix and Add by Raktai 2007/05/21---------------------------------------------- //if (po.ValueType2 is AFDDateTimeValueType) //{ // //po.ValueType2.SetValue(((DateTime)po.ValueType2.GetValue()[0]).AddDays(1).AddSeconds(-1)); // keys.Add(new FindKeyword(po.KeyName, po.Checked, po.FieldMap, po.SelectedOperator, po.SelectedValue1, new object[] { (((DateTime)po.ValueType2.GetValue()[0]).AddDays(1).AddSeconds(-1)) })); //} //else { keys.Add(new FindKeyword(po.KeyName, po.Checked, po.FieldMap, po.SelectedOperator, po.SelectedValue1, po.SelectedValue2)); } //End fix and add--------------------------------------------------------------- } } return(keys); }
public DataRequest CreateRequestStoreCommand(string strMainSql, FindKeywordCollection keywords) { DataRequest req = new DataRequest(strMainSql, CommandType.StoredProcedure); if (keywords != null) { foreach (FindKeyword key in keywords) { object value1; object value2; if (key.SelectedOperator == FindOperator.Between) { // if between operator is selected so multi value can't be used. value1 = DBNull.Value; value2 = DBNull.Value; if (key.Checked) { if (key.SelectedValue1.Length > 0) { value1 = key.SelectedValue1[0]; } if (key.SelectedValue2.Length > 0) { value2 = key.SelectedValue2[0]; } } req.Parameters.Add(string.Format("{0}{1}", key.FieldMapDbVariable, 1), value1); req.Parameters.Add(string.Format("{0}{1}", key.FieldMapDbVariable, 2), value2); } else { // If user not selected between operator // if type is storeprocedue, i will not care for FineOperator user selected. Because this operation will be operate by stoprocedure in side. // check for multi value if (key.SelectedValue1.Length == 1) { if (key.Checked) { value1 = key.SelectedValue1[0] == null ? DBNull.Value : key.SelectedValue1[0]; req.Parameters.Add(key.FieldMapDbVariable, value1); } else { req.Parameters.Add(key.FieldMapDbVariable, DBNull.Value); } } else { if (key.Checked) { req.Parameters.Add(key.FieldMapDbVariable, GetValueStringFromArray(key.SelectedValue1)); } else { req.Parameters.Add(key.FieldMapDbVariable, DBNull.Value); } } } } } return(req); }
public DataRequest CreateRequestTextCommand(string strMainSql, bool bAlreadyHaveWhereStatement, string strOptionalSql, FindKeywordCollection keywords) { DataRequest req = new DataRequest(strMainSql, CommandType.Text); string result = string.Empty; string con; // = " where "; if (bAlreadyHaveWhereStatement) { con = " and "; } else { con = " where "; } if (keywords != null) { foreach (FindKeyword key in keywords) { string k1, k2; if (key.Checked == false) { continue; } if (key.SelectedOperator == FindOperator.Between) { k1 = PARM_PREFIX + key.FieldMapDbVariable + "1"; k2 = PARM_PREFIX + key.FieldMapDbVariable + "2"; result += con + key.FieldMap + key.SelectedOperator.Symbol + k1 + " and " + k2; req.Parameters.Add(k1, key.SelectedValue1[0]); req.Parameters.Add(k2, key.SelectedValue2[0]); con = " and "; } else { // end if (key.SelectedOperator == FindOperator.Between){ if (key.SelectedValue1.Length == 1) { object oValue = key.SelectedValue1[0]; // Calculate for Like Operator if (oValue != null) { if (oValue is string && key.SelectedOperator == FindOperator.Like) { string tmp = Convert.ToString(oValue).Trim(); if (tmp.StartsWith("%") == false && tmp.EndsWith("%") == false) { tmp = "%" + tmp + "%"; oValue = tmp; } } } if (oValue == null) { result += con + key.FieldMap + " is null "; con = " and "; } else { result += con + key.FieldMap + key.SelectedOperator.Symbol + PARM_PREFIX + key.FieldMapDbVariable; req.Parameters.Add(PARM_PREFIX + key.FieldMapDbVariable, oValue); con = " and "; } } else { //if (key.SelectedValue1.Length == 1), In this case user select muliple value, So must use "in" operator. string strFields = string.Empty; for (int i = 0; i < key.SelectedValue1.Length; ++i) { if (key.SelectedValue1[i] != null) { string field = PARM_PREFIX + key.FieldMapDbVariable + i.ToString(); strFields += field; req.Parameters.Add(field, key.SelectedValue1[i]); if (i < key.SelectedValue1.Length - 1) { strFields += ", "; } } } if (key.SelectedOperator == FindOperator.NotEqualTo) { result += con + key.FieldMap + " not in (" + strFields + ")"; } else { result += con + key.FieldMap + " in (" + strFields + ")"; } con = " and "; } } } // end foreach } req.CommandText += result + " " + strOptionalSql + " "; return(req); }