tieuquyngok1995 / ToolSupportUchida

1 stars 1 forks source link

main8 #16

Closed tieuquyngok1995 closed 3 years ago

tieuquyngok1995 commented 3 years ago

private void btnConvert_Click(object sender, EventArgs e) { string dicValue = string.Empty; string strSQL = strInputSQL; string result = string.Empty; bool checkIf = true; bool isNum = false;

        try
        {
            lstDicParam.Clear();
            foreach (DataGridViewRow item in lstInputParam.Rows)
            {
                dicValue = string.IsNullOrEmpty(item.Cells[1].Value.ToString())
                    ? CONSTANTS.CONST_STRING_EMPTY : item.Cells[1].Value.ToString();
                lstDicParam.Add(item.Cells[0].Value.ToString(), dicValue);
            }

            foreach (KeyValuePair<string, string> item in lstDicParam)
            {
                strSQL = strSQL.Replace(CONSTANTS.CONST_STRING_FORMAT_13 + item.Key + CONSTANTS.CONST_STRING_FORMAT_14,
                                                  CONSTANTS.CONST_STRING_REPLACE_06 + item.Value + CONSTANTS.CONST_STRING_REPLACE_06);

                isNum = int.TryParse(item.Value, out int n);
                if (isNum && item.Value.Trim().StartsWith("\"") && item.Value.Trim().EndsWith("\"") )
                {
                    strSQL = strSQL.Replace(CONSTANTS.CONST_STRING_FORMAT_15 + item.Key + CONSTANTS.CONST_STRING_FORMAT_16,
                                                  CONSTANTS.CONST_STRING_REPLACE_06 + item.Value + CONSTANTS.CONST_STRING_REPLACE_06);
                }
                else
                {
                    strSQL = strSQL.Replace(CONSTANTS.CONST_STRING_FORMAT_15 + item.Key + CONSTANTS.CONST_STRING_FORMAT_16,item.Value);
                }

                //strSQL = strSQL.Replace(CONSTANTS.CONST_STRING_SPACE + item.Key + CONSTANTS.CONST_STRING_SPACE,
                //                                  CONSTANTS.CONST_STRING_SPACE + item.Value + CONSTANTS.CONST_STRING_SPACE);

                strSQL = CUtils.ReplaceFormatText(strSQL, item.Key, CONSTANTS.CONST_STRING_FORMAT_11, item.Value);
                strSQL = CUtils.ReplaceFormatText(strSQL, item.Key, CONSTANTS.CONST_STRING_FORMAT_12, item.Value);
            }

            foreach (string item in strSQL.Split(CONSTANTS.CONST_CHAR_LINE_BREAK))
            {
                if (string.IsNullOrEmpty(item))
                {
                    continue;
                }

                if (!item.Trim().Equals(CONSTANTS.CONST_STRING_CHECK_END_IF)
                    &&( item.Contains(CONSTANTS.CONST_STRING_CHECK_IF) || item.Contains(CONSTANTS.CONST_STRING_CHECK_ELSE_IF)))
                {
                    checkIf = CUtils.ConvertStringToBoolean(item);
                }
                else if (item.Equals(CONSTANTS.CONST_STRING_CHECK_ELSE))
                {
                    checkIf = !checkIf;
                    continue;
                }
                else if (item.Equals(CONSTANTS.CONST_STRING_CHECK_END_IF))
                {
                    checkIf = true;
                    continue;
                }
                else
                {
                    if (checkIf)
                    {
                        result = result + item + CONSTANTS.CONST_CHAR_LINE_BREAK;
                    }
                }
            }

            result = result.Replace(CONSTANTS.CONST_STRING_CHECK_STRING_EMPTY, CONSTANTS.CONST_STRING_DOUBLE_APOSTROPHE);

        txtOuputSQL.Text = result;
        }
        catch (Exception ex)
        {
            MessageBox.Show("An abnormal error occurs in the function: Convert\nError content: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }