Monday, December 16, 2013

How to handle button event for user control in asp.net page

A better idea is to publish an event in the user control to allow any interested parties to handle the event.
This technique is commonly referred to as “event bubbling”.
Here is an exmple:
public partial class Test : System.Web.UI.UserControl
{
public event EventHandler buttonClick;
 protected void Button1_Click(object sender, EventArgs e)
    {
        buttonClick(sender, e);
    }
{
    protected void Page_Load(object sender, EventArgs e)
    {
    {
        Response.Write("hello,I am jack.");
    }


}
Then you can subscribe the event buttonClick at webpage to display the different information .
public partial class Test: System.Web.UI.Page
    UserControlID.buttonClick+=new EventHandler(UserControlID_buttonClick);
}
    protected void UserControlID_buttonClick(object sender, EventArgs e)
}

COALESCE function in SQL

The COALESCE function can be used in Oracle/PLSQL.
You could use the coalesce function in a SQL statement as follows:

SELECT COALESCE( address1, address2, address3 ) result FROM suppliers;

The above COALESCE function is equivalent to the following IF-THEN-ELSE statement:
IF address1 is not null THEN
   result := address1;

ELSIF address2 is not null THEN
   result := address2;

ELSIF address3 is not null THEN
   result := address3;

ELSE
   result := null;

END IF;
The COALESCE function will compare each value, one by one.

Friday, March 8, 2013

Dynaic Compiletion of code


   public static string EvalIF()
        {
            string now = Eval("if (1==4)return \"glt\";else return \"shi\";") as string;
            return now;
        }

        public static object Eval(string sExpression)
        {
            CSharpCodeProvider c = new CSharpCodeProvider();
            CompilerParameters cp = new CompilerParameters();

            cp.ReferencedAssemblies.Add("system.dll");

            cp.CompilerOptions = "/t:library";
            cp.GenerateInMemory = true;

            StringBuilder sb = new StringBuilder("");
            sb.Append("using System;\n");

            sb.Append("namespace CSCodeEvaler{ \n");
            sb.Append("public class CSCodeEvaler{ \n");
            sb.Append("public object EvalCode(){\n");
            sb.Append(" " + sExpression + "; \n");
            sb.Append("} \n");
            sb.Append("} \n");
            sb.Append("}\n");

            CompilerResults cr = c.CompileAssemblyFromSource(cp, sb.ToString());
            if (cr.Errors.Count > 0)
            {
                throw new InvalidExpressionException(
                    string.Format("Error ({0}) evaluating: {1}",
                    cr.Errors[0].ErrorText, sExpression));
            }

            System.Reflection.Assembly a = cr.CompiledAssembly;
            object o = a.CreateInstance("CSCodeEvaler.CSCodeEvaler");

            Type t = o.GetType();
            MethodInfo mi = t.GetMethod("EvalCode");

            object s = mi.Invoke(o, null);
            return s;

        }

Thursday, February 28, 2013

Dynamic Parameter in command in ASP.net


        public SqlParameter[] GetParam(Hashtable objHT)
        {
            int count = objHT.Count;
            SqlParameter[] param=new SqlParameter[count];
            List<string> keys = new List<string>(objHT.Keys.OfType<string>());

            for (int i = 0; i < count; i++)
            {
                param[i] = new SqlParameter("@" + keys[i], objHT[keys[i]].ToString());
            }
            return param;
        }

Encryption and Decryption for android in ASP.Net


        const string key = "PasswordPassword";
       public static string DecryptAndroid(string textToDecrypt)
       {
            RijndaelManaged rijndaelCipher = new RijndaelManaged();
            rijndaelCipher.Mode = CipherMode.CBC;
            rijndaelCipher.Padding = PaddingMode.PKCS7;
            rijndaelCipher.KeySize = 0x80;
            rijndaelCipher.BlockSize = 0x80;
            byte[] encryptedData = Convert.FromBase64String(textToDecrypt);
            byte[] pwdBytes = Encoding.UTF8.GetBytes(key);
            byte[] keyBytes = new byte[0x10];
            int len = pwdBytes.Length;
            if (len > keyBytes.Length)
            {
                len = keyBytes.Length;
            }
            Array.Copy(pwdBytes, keyBytes, len);
            rijndaelCipher.Key = keyBytes;
            rijndaelCipher.IV = keyBytes;
            byte[] plainText = rijndaelCipher.CreateDecryptor().TransformFinalBlock(encryptedData, 0, encryptedData.Length);
            return Encoding.UTF8.GetString(plainText);
        }

       public static string EncryptAndroid(string textToEncrypt)
        {
            RijndaelManaged rijndaelCipher = new RijndaelManaged();
            rijndaelCipher.Mode = CipherMode.CBC;
            rijndaelCipher.Padding = PaddingMode.PKCS7;
            rijndaelCipher.KeySize = 0x80;
            rijndaelCipher.BlockSize = 0x80;
            byte[] pwdBytes = Encoding.UTF8.GetBytes(key);
            byte[] keyBytes = new byte[0x10];
            int len = pwdBytes.Length;
            if (len > keyBytes.Length)
            {
                len = keyBytes.Length;
            }
            Array.Copy(pwdBytes, keyBytes, len);
            rijndaelCipher.Key = keyBytes;
            rijndaelCipher.IV = keyBytes;
            ICryptoTransform transform = rijndaelCipher.CreateEncryptor();
            byte[] plainText = Encoding.UTF8.GetBytes(textToEncrypt);
            return Convert.ToBase64String(transform.TransformFinalBlock(plainText, 0, plainText.Length));
        }

Accessing web service using post method in ASP.Net


string URI = "http:xxx.xx.xxx.xxx:xx/customerEnergy/Login.asmx/ValidateLogin";
string myParameters = "UID=admin&Password=password";

using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string HtmlResult = wc.UploadString(URI, myParameters);
}

Tuesday, January 15, 2013

Empty all textboxes


  public static void EmptyTextBoxes(Control parent) 
    { 
        foreach (Control c in parent.Controls) 
        { 
        if (c.GetType() == typeof(TextBox)) 
        { 
        ((TextBox)(c)).Text = string.Empty; 
        }
        else if (c.GetType() == typeof(DropDownList)) 
        { 
            ((DropDownList)(c)).SelectedIndex = 0; 
        } 
           if (c.HasControls()) 
           { 
             EmptyTextBoxes(c); 
           } 
        } 
    }

Convert Data Table to JSON string


        public string getTableJson(DataTable dt, string MethodName)
        {
            if (dt != null && dt.Rows.Count > 0)
            {
                Dictionary<string, string>[] MyJson = new Dictionary<string, string>[dt.Rows.Count];
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    MyJson[i] = new Dictionary<string, string>();

                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        MyJson[i].Add(dt.Columns[j].ColumnName, dt.Rows[i][j].ToString());
                    }
                }
                JavaScriptSerializer js = new JavaScriptSerializer();
                return "{\"status\":{\"status\":\"1\",\"message\":\"success\"},\"" + MethodName + "\":" + js.Serialize(MyJson) + "}";
            }
            else
            {
                return "{\"status\":{\"status\":\"0\",\"message\":\"Not Success\"},\"" + MethodName + "\":[{\"Msg\":\"No Data Found\"}]}";
            }
        }

Export to Excel From Grid View in Asp.net


 protected void lnkbutExport_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                Response.Clear();
                Response.AddHeader("content-disposition", "attachment;filename=MyExcelFile.xls");
                Response.Charset = "";
                //Response.ContentType = "application/content.xls";
                StringWriter StringWriter = new System.IO.StringWriter();
                HtmlTextWriter HtmlTextWriter = new HtmlTextWriter(StringWriter);
                gvForecast.RenderControl(HtmlTextWriter);
                Response.Write(StringWriter.ToString());
                Response.End();
            }
            catch(Exception ex)
            {
            }
        }

        public override void VerifyRenderingInServerForm(Control control)
        {

        }

Import data From Excel File to Data Table


        protected void BtnUpload_Click(object sender, EventArgs e)
        {
string[] strarr = { "commodity", "forecast type", "unit of measurement", "volume","profile type", "profilecomp", "profileloc", "year", "month", "date", "hour","time zone" };
            string extension = System.IO.Path.GetExtension(FileUpload1.FileName).ToUpper();
            if (FileUpload1.HasFile)
            {
                if (extension == ".XLS" || extension == ".XLSX")
                {
                    try
                    {
                        string[] names = FileUpload1.FileName.Split('.');
                        string src = Server.MapPath("~/Upload/") + DateTime.Now.ToString("yyyyMMddhhmmss") + "." + names[names.Length - 1];
                        FileUpload1.SaveAs(src);
                        string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + src + ";Extended Properties=Excel 12.0;Persist Security Info=False";
                        //Old string excelConnectionString = @"Provider= Microsoft.Jet.OLEDB.4.0;Data Source=" + src + "; Extended Properties='Excel 8.0;HDR=Yes;'";

                        OleDbConnection con = new OleDbConnection(excelConnectionString);
                        OleDbDataAdapter da = new OleDbDataAdapter("select * from [Sheet1$]", con);
                        DataSet ds = new DataSet();
                        da.Fill(ds);

                        if (ds != null && ds.Tables.Count > 0)
                        {
                            DataTable dt = ds.Tables[0];
                            bool bl = true;
                            for (int i = 0; i < dt.Columns.Count; i++)
                            {
                                if (strarr[i] != dt.Columns[i].ColumnName.ToLower())
                                {
                                    bl = false; break;
                                }
                            }
                            if (bl)
                            {
                                dt=getTextForGrid(dt);
                                ViewState["dt"] = dt;
                                bindGrid();
                            }
                            else
                            {
                                Common.alert("File Is Not a Well Formate collumn MisMatch...!", this);
                            }
                        }
                        else
                        {
                            Common.alert("please select only excel file", this);
                        }

                    }
                    catch (Exception ex)
                    {
                        Common.alert(ex.Message, this);
                    }
                }

                else {
                    Common.alert("Only select excel file",this);
                }
            }
            else
            {
                Common.alert("select excel file",this);
            }
         
        }

Bulk Import in SQL From DataTable



  protected void BtnSave_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable dt = DynamicColumns();
                SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings["ETRMDBString"]);
                SqlBulkCopy bc = new SqlBulkCopy(con.ConnectionString, SqlBulkCopyOptions.TableLock);
                bc.DestinationTableName = "ETRMForecastDetails";
                bc.BatchSize = dt.Rows.Count;
                con.Open();
                bc.WriteToServer(dt);
                bc.Close();
                con.Close();
                Common.alert("Data Save Sucessfully!", this);
                grdForcastImport.DataSource = null;
                grdForcastImport.DataBind();
                ViewState["dt"] = null;
                trSave.Visible = false;
                trupload.Visible = true;
                clearFolder(Server.MapPath("~/Upload/"));
            }
            catch (Exception ex)
            {
                Common.alert(ex.Message , this);
            }
}  
    DataTable DynamicColumns()
        {
            DataTable dt = new DataTable();
            DataColumn dc; DataRow row;
            dc = new DataColumn("FrcId"); dt.Columns.Add(dc);
            dc = new DataColumn("ForeType"); dt.Columns.Add(dc);
            dc = new DataColumn("RefUOMId"); dt.Columns.Add(dc);
            dc = new DataColumn("Volume"); dt.Columns.Add(dc);
            dc = new DataColumn("PType"); dt.Columns.Add(dc);
            dc = new DataColumn("ProfileCompID"); dt.Columns.Add(dc);
            dc = new DataColumn("ProfileLocID"); dt.Columns.Add(dc);
            dc = new DataColumn("Year"); dt.Columns.Add(dc);
            dc = new DataColumn("Month"); dt.Columns.Add(dc);
            dc = new DataColumn("Date"); dt.Columns.Add(dc);
            dc = new DataColumn("Hours"); dt.Columns.Add(dc);
            dc = new DataColumn("Createdby"); dt.Columns.Add(dc);
            dc = new DataColumn("Createddate"); dt.Columns.Add(dc);
            dc = new DataColumn("UpdatedBy"); dt.Columns.Add(dc);
            dc = new DataColumn("UpdatedDate"); dt.Columns.Add(dc);
            dc = new DataColumn("TimeZoneid"); dt.Columns.Add(dc);
            DataTable vdt = (DataTable)ViewState["dt"];

            foreach (DataRow dr in vdt.Rows)
            {
                row = dt.NewRow();
                row["FrcId"] = 0;
                row["RefUOMId"] = dr[2].ToString();
                row["ForeType"] = dr[1].ToString();
                row["Volume"] = dr[3].ToString();
                row["PType"] = dr[4].ToString();
                row["ProfileCompID"] = dr[5].ToString() == "" ? Convert.DBNull : dr[5].ToString();
                row["ProfileLocID"] = dr[6].ToString() == "" ? Convert.DBNull : dr[6].ToString();
                row["Year"] = dr[7].ToString();
                row["Month"] = dr[8].ToString();
                row["Date"] = dr[9].ToString();
                row["Hours"] = dr[10].ToString();
                row["Createdby"] = "1";
                row["Createddate"] = DateTime.Now.ToString("dd-MMM-yyyy HH:mm");
                row["UpdatedBy"] = "1";
                row["UpdatedDate"] = DateTime.Now.ToString("dd-MMM-yyyy HH:mm");
                row["TimeZoneid"] = dr[11];
                dt.Rows.Add(row);
            }

            return dt;
        }