public string GetMsg(string Msg, Int16 CultureId, string TechnicalUsr, string dbConnectionString, string dbPassword) { string mm = Msg; using (Access3.AdminAccess dac = new Access3.AdminAccess()) { try { int ic = mm.IndexOf("{"); if (ic >= 0) { mm = mm.Substring(ic, mm.Length - ic); MatchCollection sa = Regex.Matches(mm, @"{[^}]*}"); if (sa[0].Value != string.Empty) // Found MsgId and process only the first one. { DataTable dt = dac.GetMsg(Int32.Parse(sa[0].Value.Substring(1, sa[0].Value.Length - 2)), CultureId, dbConnectionString, dbPassword); if (dt != null && dt.Rows.Count > 0) { string ss = dt.Rows[0]["Msg"].ToString(); for (int ii = 1; ii < sa.Count; ii++) { ss = SubPar(ss, ii, sa[ii].Value.Substring(1, sa[ii].Value.Length - 2), dt.Rows[0]["CultureTypeName"].ToString()); } if (TechnicalUsr == "Y") { return(dt.Rows[0]["MsgSource"].ToString() + ": " + ss); } else { return(ss); } } else { return(Msg); } } else { return(Msg); } } else // Remove all messages in front including Sybase extra messages between "[" and "]". { int i0 = mm.IndexOf("["); if (i0 >= 0) { int i1 = mm.IndexOf("]"); if (i1 >= 0) { int i2 = mm.Substring(i1 + 1).IndexOf("]"); if (i2 >= 0) { mm = mm.Substring(0, i0) + mm.Substring(i1 + i2 + 2).Trim(); } } } return(mm); } } catch { return(Msg); } } }