Saturday, 20 April 2013

Steps To Display Database Content to DataGridView in C#

  • .net asp .net how to use data grid view dynamic data in data grid view how to implement datagridview

1)  Establish connection to database :

SqlConnection conObj =  new SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=F:\WindowsFormsApplication5\WindowsFormsApplication5\StudentDatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

Note : 
  • SqlConnection Class found in "System.Data.SqlClient" Namespace, So that you need to specify ( using System.Data.SqlClient; ) namespace
         
2) Create string based on what data need to Display :

        String selectString="SELECT  * FROM employee";

3) Execute above string :


SqlDataAdapter    dataAdapterObj = new SqlDataAdapter(selectString, conObj);

Note : 
  • SqlDataAdapter constructor execute selectString and store result in dataAdapterObj
  • Require two input selectstring to execute and connection object (conObj)

4)Attach data from dataAdapterObject to DataTable object :

        DataAdapter dtObj=new DataAdapter();
                   dtObj.fill(dataAdapterObj );

5)Finally Attach data from data table (dtObj) to DataGridView using DataSource Property :

        datagridview1.DataSource=dtObj;

I hope you got it... If you have any query then ask me...


SAMPLE :





Saturday, 26 January 2013

Database Normalization and Types of Normalization

  • what is normalization and types of normalization 1NF 2NF 3NF with examples SQL simple definition of normalization

Normalization is the techinque of designing the database with the least redundancy and duplicacy of data. 


  • Types of Normalization:
    • First Normal Form
    • Second Normal Form
    • Third Normal Form
    • BCNF - Boyce Code Normal Form
    • Fifth Normal Form
    • Sixth Normal Form : Impossible to achieve this level of normalization
  • First Normal Form
    • Eliminate repeating groups in individual tables. 
    • Create a separate table for each set of related data. 
    • Identify each set of related data with a primary key.
    • Example :  
             Lets Consider Unnormalized table 




Tables should have only two dimensions. Since one student has several classes, these classes should be listed in a separate table. Fields Class1, Class2, and Class3 in the above records are indications of design trouble. 

 Spreadsheets often use the third dimension, but tables should not. Another way to look at this problem is with a one-to-many relationship, do not put the one side and the many side in the same table. Instead, create another table in first normal form by eliminating the repeating group (Class#), as shown below:


  • Second Normal Form
    • Create separate tables for sets of values that apply to multiple records. 
    • Relate these tables with a foreign key.
    • Example :
Note the multiple Class# values for each Student# value in the above table. Class# is not functionally dependent on Student# (primary key), so this relationship is not in second normal form.

The following two tables demonstrate second normal form:

                 Students :


                  Registration:


  • Third Normal Form
    • Eliminate fields that do not depend on the key.
    • Example :
In the last example, Adv-Room (the advisor's office number) is functionally dependent on the Advisor attribute. The solution is to move that attribute from the Students table to the Faculty table, as shown below:

                  Students :


                   Faculty :



Difference between DBMS and RDBMS

  • database management system vs relational database management system /
Database Management System VS Relational Database Management System

• Relationship among tables is maintained in a RDBMS whereas this not the case DBMS as it is used to manage the database.

• DBMS accepts the ‘flat file’ data that means there is no relation among different data whereas RDBMS does not accepts this type of design.

• DBMS is used for simpler business applications whereas RDBMS is used for more complex applications.

• Although the foreign key concept is supported by both DBMS and RDBMS but its only RDBMS that enforces the rules.

• RDBMS solution is required by large sets of data whereas small sets of data can be managed by DBMS.

Wednesday, 16 January 2013

How to know request is ajax or other in php


How to know whether the request is an ajax request or normal request in PHP? 

We can know it through following code:

$ajax = false;

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
 $ajax = true;
}
echo $ajax;

Wednesday, 2 January 2013

All Gmail Shortcuts

First enable shortcuts of gmail
for that go to setting and find Keyboard shortcuts and on it

Jumping
g then i : Go to Inbox
g then s : Go to Starred conversations
g then t : Go to Sent messages
g then d : Go to Drafts
g then a : Go to All mail
g then c : Go to Contacts
g then k : Go to Tasks
g then l : Go to Label

Threadlist selection
* then a : Select all conversations
* then n : Deselect all conversations
* then r : Select read conversations
* then u : Select unread conversations
* then s : Select starred conversations
* then t : Select unstarred conversations

Navigation
u : Back to threadlist
k / j : Newer/older conversation
o or <Enter> : Open conversation; collapse/expand conversation
p / n : Read previous/next message
` : Go to next inbox section
~ : Go to previous inbox section

Application
c : Compose
/ : Search mail
q : Search chat contacts
. : Open "more actions" menu
v : Open "move to" menu
l : Open "label as" menu
? : Open keyboard shortcut help

Actions
, : Move focus to toolbar
x : Select conversation
s : Rotate superstar
y : Remove label
e : Archive
m : Ignore conversation
! : Report as spam
# : Move to trash
r : Reply
<Shift> + r : Reply in a new window
a : Reply all
<Shift> + a : Reply all in a new window
f : Forward
<Shift> + f : Forward in a new window
<Shift> + n : Update conversation
<Tab> then Enter : Send mail
<Esc> : Focus last mole
] / [ : Remove conversation from current view and go previous/next
} / { : Archive conversation and go previous/next
z : Undo last action
<Shift> + i : Mark as read
<Shift> + u : Mark as unread
_ : Mark unread from the selected message
<Ctrl> + s : Save draft
+ or = : Mark as important
- : Mark as not important
g then p : Make a phone call
<Shift> + t : Add conversation to Tasks

Sunday, 9 December 2012

regex ( regular expression ) for email, phone, number, time, postcodes, age, month, currency, text, swiss price, score, word count, profanity filter validation

SPECIAL NOTE: Regular Expressions in Conditions

Note - when using regular expressions in the condition editor, do NOT include the beginning and ending slash.

Email Validation:
                        
/(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})/

The above regex will not validate email adresses with "+" - which is valid, and e.g. promoted by gmail. The below regex is slightly modified and allows "+":

/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/

It is still far from perfect - but I think its better then the original (also because start-of-string and end-of-string anchors are added). Mind. This will allow e.g. abc+++defg@somemail.office.com. Ideally the regex should be modified to only allow one "+" charachter.

Postcodes:

Australian Postcodes: 
/^[0-9]{4}/


Brazilian Postcodes:   /^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/

Canadian Postcodes:  /^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$/

US Postal Codes:         /^[0-9]{5}([- /]?[0-9]{4})?$/

Phone Numbers:

US Phone Number:


/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/

or

/^[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{4}[\(\)\.\- ]{0,}$/

This second option will match all phone Canadian and US phone numbers that include non-digit symbols including
. ( ) - (space)

This will allow you to match phone numbers which resemble below.

(555)555 5555
555.555.5555
555 555 5555
(555)-555-5555
555-555-5555
555555555

Australian Phone Number:

The following patterns match all various Australian mobile and landline phone numbers including with "+61" country prefix eg:

(02) 9123 6535
03 1234-5345
0412 345 678
+61 2 3456 789

But not:

234 3450 234
a234 534 3432
134567
123456789013

Brackets, white space and hypens are ignored.

NOTE: The 'PRECICE' versions listed here match against the first four or five didgets in a number to ensure that they are valid Australian numbers. The 'NOT VERY PRECISE' only match against the first and second didgit so may allow invaid numbers

All Australian phone numbers (mobile and landline - area code required) :

VERY PRECISE
/^\(?(?:\+?61|0)(?:(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}|4\)?[ -]?(?:(?:[01][ -]?[0-9]|2[ -]?[0-57-9]|3[ -]?[1-9]|4[ -]?[7-9]|5[ -]?[018])[ -]?[0-9]|3[ -]?0[ -]?[0-5])(?:[ -]?[0-9]){5})$/ 

NOT VERY PRECISE 
/^(?:\+?61|0)[2-478](?:[ -]?[0-9]){8}$/

All Australian phone numbers (landlines only - area code required):

VERY PRECISE 
/^\(?(?:\+?61|0)(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}$/ 

NOT VERY PRECISE 
/^(?:\+?61|\(?0)[2378]\)?(?:[ -]?[0-9]){8}$/

New South Wales landline phone numbers (area code optional):

VERY PRECISE 
/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/ 

NOT VERY PRECISE 
/^(?:\(?(?:\+?61|0)2\)?(?:[ -]?[0-9]){7}[0-9]$/

Victorian and Tasmanian landline phone numbers (area code optional):

VERY PRECISE 
/^(?:\(?(?:\+?61|0)3\)?[ -]?)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])(?:[ -]?[0-9]){6}$/ 

NOT VERY PRECISE 
/^(?:\(?(?:\+?61|0)3\)?(?:[ -]?[0-9]){7}[0-9]$/

Queensland landline phone numbers (area code optional):

VERY PRECISE 
/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/ 

NOT VERY PRECISE 
/^(?:\(?(?:\+?61|0)7\)?(?:[ -]?[0-9]){7}[0-9]$/

South Australia, Northern Territory, Western Australia landline phone numbers (area code optional):

VERY PRECISE 
/^(?:\(?(?:\+?61|0)8\)?[ -]?)?(?:5[1-4]|6[0-8]|[7-9][0-9])$/ 

NOT VERY PRECISE 
/^(?:\(?(?:\+?61|0)8\)?(?:[ -]?[0-9]){7}[0-9]$/

Australian Mobile phone numbers only

VERY PRECISE 
/^(?:\+?61|0)4 ?(?:(?:[01] ?[0-9]|2 ?[0-57-9]|3 ?[1-9]|4 ?[7-9]|5 ?[018]) ?[0-9]|3 ?0 ?[0-5])(?: ?[0-9]){5}$/ 

NOT VERY PRECISE 
/^(?:\(?(?:\+?61|0)4\)?(?:[ -]?[0-9]){7}[0-9]$/

Belgian phone number

/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/

Belgian mobile phone number

/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/


French phone number

/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/


French mobile phone number

/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/


Luxemburg phone number

/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/


Luxemburg mobile phone number

/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/


German marks (with optional plus or minus)

/^[1-6]{1}[\+|\-]?$/


Age Validation:

Example: Age 20-99

/([2-9][0-9])/Example: Age 18-35
/(1[8-9]|2[0-9]|3[0-5])/

Example: Age 19-65

^(1[8-9]|[2-5][0-9]|6[0-5])$

Number validation:

Numbers from 1 to 99999

/^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9])$/
/^[1-9][0-9]{0,4}$/ does the same as above but should run a little faster

Numbers from 1 to 999, 1.000 to 999.999 to 999.999.999

/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/ accepts numbers from 1 to 999, 1.000 to 999.999 to 999.999.999 but rejects numbers like 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333

Number validation with optionnal decimal (for price)

/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/ accepts numbers from 0 to 199, with 2 decimal optionnal

/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/ forces two decimal points accepts numbers from 1.00 to 999,999,999.00 with an optional comma delimiting thousands/millions including all of the following: 1.00, 1,000.00 , 12,345.67 , 12345,02 , 123,456,468.00 , 1234566.00 , 123456789.00 but not 1,23.00 , 12,3.4 or 1234,43.04
/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/ same as above but the two decimal points are optional


Month (1-12)

If you want to ask for the month a person was born you can validate the input as follows:
/^[0]*[1-9]$|^[0]*1[0-2]$/


Minimum width (set to 3 in this example)

/^.{3,}$/


Currency

US currency (dollar sign and cents optional)

/^\$?\d+(\.(\d{2}))?$/

Swiss price

A number with two decimal numbers after the decimal point of which the last one is either a 5 or a 0:
/^(\d+)(\.\d(05)?)?$/

Validate score

1-10

/^[1-9]{1}$|^10$/

1-100

/^[1-9]?[0-9]{1}$|^100$/


Text validation

currently multiple short text doesn't support minimum or maximum answers. One way around this is to use a long free text type question with a regular expression.
The following test for at least one word per line for at least 3 lines and no more than 10 lines.

/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){2,10}/is
If you wanted, say five words per line you could change the first and last star/asterisk to {4,} e.g.

/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is
If you wanted one or more words per line on between 1 and 5 lines, you can change the content of the last curley braces to {0,4} (note you use 0 because you're already matching the first line.

/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){0,4}/is

Word count

The following restricts the number of words allowed to a minimum of 1 and a maximum of 200 

/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/

To increase the minimum change the zero part of {0,199} 
To increase or decrease the maximum change the "199" part of {0,199}

Time validation

There are a number of ways of writing time formats. Some of the possible options are 12 hour or 24 hour, with seconds or without. regular expressions below:

The following three validation strings test for 24 hour time (in order of appearences) without seconds, with optional seconds lastly with seconds required. 

/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/ /^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$/ /^(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/

The following three match 12 hour time, as above with seconds, optional seconds and with seconds required 

/^(?:00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))$/ /^(?:00:[0-5][0-9](?::[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?::[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?::[0-5][0-9])? (?:pm|PM))$/ /^(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))$/
The following three match either 12 or 24 hour time as above with seconds, optional seconds and with seconds required 

/^(?:(?:00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9])$/ /^(?:(?:00:[0-5][0-9](?::[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?::[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?::[0-5][0-9])? (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?)$/ /^(?:(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$/

US States

To validate for one state use the following (example is Texas):

TX uppercase only = /^(TX)$/
tx lowercase only = /^(tx)$/
TX upper or lowercase = /^([T|t][X|x])$/

Profanity Filter

To filter profanity words from an answer:
/^(?i)((?!\bENTERPROFANITYHERE\b).)*$(?-i)/

Replace "ENTERPROFANITYHERE" with your bad word.

The \b will allow passing of words such as "assassination" & "hello" if you enter "ass" or "hell" as your profanity word. This also works if you are trying to omit other words, names etc. from answers.

Thursday, 6 December 2012

sort json array

  • ascending descending order easy way to sort javascript array simple steps to sort json array in ascending descending order
Lets consider following example for sorting

var arr = [
{ "ID": 135, "Name": "Fargo Chan", "Address": "34, Baker Street " },
{ "ID": 432, "Name": "Aaron Luke", "Address": "BLDG 1, J Street" },
{ "ID": 252, "Name": "Dilip Singh", "Address": "Hotel J, SE" }
];


code to sort json array


<script type="text/javascript">

    var arr = [
        { "ID": 135, "Name": "FGH", "Address": "34, Baker Street" },
        { "ID": 432, "Name": "ABC", "Address": "BLDG 1, J Street" },
        { "ID": 252, "Name": "DEF", "Address": "Hotel J, SE" }
    ];

    // Before Sorting

    document.write("<b>Before Sorting </b><br/>"); 
    for (var n = 0; n < arr.length; n++) {
        document.write(arr[n].ID + ' ' + arr[n].Name + '<br>');
    }

    // ascending order

    function SortByID(x,y) {
        return x.ID - y.ID; 
    }

    function SortByName(x,y) {
        return ((x.Name == y.Name) ? 0 : ((x.Name > y.Name) ? 1 : -1 ));
    }

    // Call Sort By Name

    arr.sort(SortByName);

    document.write("<br/><b>After Sorting </b> <br/>"); 

    for(var n=0;n<arr.length;n++){
        document.write(arr[n].ID + ' ' + arr[n].Name + '<br>');
    }

</script>

Output

         Before Sorting
         135 FGH
         432 ABC
         252 DEF

         After Sorting
         432 ABC
         252 DEF
         153 FGH