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); 
           } 
        } 
    }