Monday, February 25, 2013

Binding the data to Dropdown list with Text field and Value Field:

1)Binding the data to Dropdown list with Text field and Value Field:

SqlConnection dbconn = new SqlConnection(Connection String);
dbconn.Open()
string query = "Select cmpname,ID from Compnies ORDER BY cmpname";
cmd = new SqlCommand(query, dbconn);
dr = cmd.ExecuteReader();
DrpList.DataSource = dr;
DrpList.DataValueField = "ID";
DrpList.DataTextField = "cmpname";
DrpList.DataBind();
dbconn.Close();

Extract Email from any Web Site using C#.net

2) How to Extract Email from the Web page:
        public string[] Extract_Emails(string source)
        {
            string[] Email_List = new string[0];
            Regex r = new Regex(@"[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}"
               RegexOptions.IgnoreCase);        
             Match m;
             //Searching for the text that matches the above regular 
              expression(which only matches email addresses)
            for (m = r.Match(source); m.Success; m = m.NextMatch())
            {
                //This section here demonstartes Dynamic arrays
                if (m.Value.Length > 0)
                {
  //Resize the array Email_List by incrementing it by 1, to save the next result                   
if (Array.IndexOf(Email_List, m.Value) < 0)
                    {
                        Array.Resize(ref Email_List, Email_List.Length +
                        Email_List[Email_List.Length - 1] = m.Value;
                    }
                }
            } 
            return Email_List;
        }
The following T-SQL scripts demonstrate the building of comma delimited list:
 -- EXAMPLE 1 - Using XML PATH (SQL Server 2005 and on)
-- T-SQL create comma delimited list from single column result
SELECT ColorCommaDelimitedList =
Stuff((SELECT ', ' + Color AS [text()]
        FROM  
        (SELECT DISTINCT Color FROM AdventureWorks2008.Production.Product
         ) x
        For XML PATH ('')),1,1,'')
/*
 ColorCommaDelimitedList
 Black, Blue, Grey, Multi, Red, Silver, Silver/Black, White, Yellow
 */
------------
-- EXAMPLE 2 - Using XML PATH & CTE (SQL Server 2005 and on)
-- T-SQL create comma delimited list using CTE - Common Table Expression
;WITH cteColor AS
(SELECT DISTINCT Color FROM AdventureWorks2008.Production.Product)
 SELECT ColorCommaDelimitedList =
   Stuff((SELECT ', ' + Color AS [text()]
          FROM cteColor 
          For XML PATH ('')),1,1,'')
 /*
 ColorCommaDelimitedList
 Black, Blue, Grey, Multi, Red, Silver, Silver/Black, White, Yellow
 */
------------
-- EXAMPLE 3 - Using local variable (SQL Server 2000 and before)
-- T-SQL creating comma delimited list with local variable & multiple statements
USE AdventureWorks;
DECLARE @CommaLimitedList VARCHAR(MAX) = ''
SELECT @CommaLimitedList = Color + ', ' + @CommaLimitedList
FROM (SELECT DISTINCT Color FROM Production.Product WHERE Color is not null) x
SELECT CommaDelimitedList=@CommaLimitedList
GO
/*
CommaDelimitedList
Yellow, White, Silver/Black, Silver, Red, Multi, Grey, Blue, Black,
*/
 ------------
-- EXAMPLE 4 - Using XML PATH & correlated subquery for sublist
-- Create comma delimited sublist
SELECT   Subcategory = ps.[Name],
         ColorList = Stuff((SELECT DISTINCT  ', ' + Color AS [text()]
                            FROM AdventureWorks2008.Production.Product p
                            WHERE p.ProductSubcategoryID = ps.ProductSubcategoryID
                            FOR XML PATH ('')),1,1,'')
FROM     AdventureWorks2008.Production.ProductSubcategory ps
ORDER BY Subcategory;
GO
/*
Subcategory             ColorList
....
Helmets                 Black, Blue, Red
Hydration Packs         Silver
Jerseys                 Multi, Yellow
....
*/
------------
-- EXAMPLE 5 - Preparing spaces delimited list
-- T-SQL make spaces delimited list of ProductNumbers
SELECT Alpha.List.value('.','varchar(256)') AS DelimitedList 
FROM   (SELECT   TOP ( 5 ) ProductNumber + '    ' 
        FROM     AdventureWorks2008.Production.Product 
        ORDER BY ProductNumber DESC 
        FOR XML PATH(''), TYPE) AS Alpha(List); 
/*
DelimitedList
WB-H098    VE-C304-S    VE-C304-M    VE-C304-L    TT-T092    
*/

how to create Setup File in C#.net

Create an EXE or Setup File in .NET Windows Application

Hi .NET Architects!
Visual Studio Setup and deployment Projects provides to make an executable or installer file in .NET windows application is easy and rapidly.
Visual Studio provides templates for four types of deployment projects: Merge Module Project, Setup Project, Web Setup Project, and Cab Project. In addition, a Setup wizard is provided to help step you through the process of creating deployment projects. You can see the templates and the wizard in the New Project dialog box under the Setup and Deployment Projects node.
The following are guidelines for choosing the right type of deployment project for your project.
1)Merge Module Project : Packages components that might be shared by multiple applications.
2)Setup Project : Builds an installer for a Windows-based application.
3)Web Setup Project : Builds an installer for a Web application.
4)Cab Project : Creates a cabinet file for downloading to a legacy Web browser.
5)Smart Device Cab Project : Creates a Cab project to deploy device applications.

This topic demonstrates deployment using a Setup and Deployment Project.
Setup Projects
Setup projects allow you to create installers in order to distribute an application. The resulting Windows Installer (.msi) file contains the application, any dependent files, information about the application such as registry entries, and instructions for installation. When the .msi file is distributed and run on another computer, you can be assured that everything necessary for installation is included; if for any reason the installation fails (for example, the target computer does not have the required operating system version), the installation will be rolled back and the computer returned to its pre installation state.


I. Create Setup Project

The following steps will gives the elegant guidance to create an executable or installer file.
1. Go to file menu > click Add > new project >now “Add New Project” dialog will appear.

2. Select the “Other Project Types” and click “Setup and Deployment” projects,Choose “Setup Project” give name project name in name text box finally click OK.



3. New project appear in solution explorer,for eg., you have give the name “MyEXE” file will be displays with given name.



4.Right click the MyEXE > go View > click “File System”




5.You can see the “File System on TargetMachine”under  three folders
Application Folder
User’s Desktop
User’s Program Menu




6.Select Application Folder and right click Add>Project Output>select Primary output



7. Select User’s Desktop right click on the right side pane>click create new shortcut>select output file from Application folder>change the file name from  primary output name to MyEXE



Next >>


Same procedure follows the user’s program menu also
8.If you want to change the Manufactures name, just right click the project go to properties


Change the properties as per you requirement
9.Finally Build the new project





11. Select the Release folder for build. (Select ‘Properties’ in right click of Setup Project)
Setup Project Release Folder

12. Set the Compression Mode
Mode 1: Optimization for speed (Installation Speed)
Mode 2: Optimization for size (Setup file size)
Compression Mode
13. Once successfully build the setup. Please look up in  inside Release folder
Release Folder
When you want to install  the setup file or exe file on the client machine, before you should be installed .NET Framework on that machine because, Applications and controls written for the .NET Framework v2.0 requires the .NET Framework Redistributable Package version 2.0 to be installed on the computer where the application or control runs. (Framework 4.0 need .NET Framework 4 Client Profile).
#1 .NET Framework 2.0 Redistributable Package Downlaod
#2 .NET Framework 4 Client Profile Downlaod

II. Create shortcut icon  in User’s Desktop, User’s Programs Menu and Add/Remove Programs

Note: System support only .ico file format
a. User’s Desktop
Step 1: Add an icon file (.ico) in project
Add icon file in setup project
Step2: Select the icon file
Select the icon file in open dialog window
Stpe3: Icon file added in Application Folder
iconf file added
Step4: Select ‘User’s Desktop’ or ‘User’s Program Menu’  and right click on right side pane
Create short cut on user's desktop
Step5: Add primary output of actual application and click ‘OK’ to select

Step6: Rename the actual name to your desired project/product name

Step7: Here the sample product name is ‘Your Product Name’ for demo purpose

Step8: If we want to add icon on shortcut, Click Properties Window

Step 9: Select Icon, next Browse icon file

Step10: Browse icon file in Application Folder

Step 11: Click  ‘Application Folder’

Step 12: Add File button will be enable once you have clicked the Application Folder
Add File
Step 13: Select your product icon and Click ‘OK’
File Added
b. User’s Programs Menu
Kindly follow the same steps for shortcut added in User’s Program Menu.
C. Add/Remove Programs Icon
If you want to add your icon in Control Panel > Programs >Uninstall, You need to follow the below steps.
Add icon in AddRemove Programs
Step 1: Select the setup project in Solution Explorer and right click, select the ‘properties’
Select  icon in AddRemove Programs
Add the icon from Application Folder.
View Icons
Install your setup in target machine, You can view the shortcuts in Desktop, Start Menu and Uninstall Programs.
Figure 1: Shortcut icon in Desktop
Desktop Icon
Figure 2: Shortcut icon in User’s Program Menu
Start menu Icon
Figure 3: Shortcut icon in Uninstall Programs
Icon in Uninstall Programs

III. Add Prerequisites

Prerequisites are provide support resources to run the installed process on your target machine.
Visual Setup and Deployment projects are automatically detect the required prerequisites need to install the system. But the question is what is the source for install the prerequisites?  No need to worry, Visual Studio IDE provides three options to install the prerequisites on your system.
  • Download prerequisites from component vendor’s website (default option)
  • Download prerequisites from the same location as my application
  • Download prerequisites from the following location
How to add prerequisites in Visual Studio?
1. Select Project in Solution Explorer, Right click

2. Click the Prerequisites button in Property Pages

3. Select the required prerequisites from the window

Click ‘Ok’, prerequisites will associate based on your install location selection.

IV. Setup file User Interface customization

If you want to customize the installation process screens. Visual Studio provides facility through ‘User Interface’.
Right click of setup project, Select View and Click ‘User Interface’.
Setup File User Interface
Here, you can see the hierarchy tree of installation process screens.
a. Add new dialog window
Step 1: Right click desired selection, Select ‘Add Dialog’
UI-Add Dialog
Step 2: Select the dialog which you wish to add
Select the dialog
Step 3: New dialog added
Dialog Added
b. Re-order the Screens
Right click of desired screen which you need to move the specific place and select ‘Move Up’ and ‘Move Down’
Dialog Move Up
c. Change the text and banner images
Right click  and select the ‘Properties Window ‘ where you need to edit the text and image.
Change the text and image
Once you’ve complete the changes and ‘Build’ the project again. Now, you setup file is professionally ready.

V. Prevent Multiple Instance Running.

How do avoid multiple instance in installed application?
In Program.cs file add the below code.
 static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Process[] process = Process.GetProcessesByName(Application.ProductName); //Prevent multiple instance
if (process.Length > 1)
{
MessageBox.Show(“{Application Name}  is already running. This instance will now close.”, “{Application Name}”, MessageBoxButtons.OK, MessageBoxIcon.Information);
Application.Exit();
}
else
{
Application.Run(new <Initial Form>());
}
}
Help me to improve better  by sharing your feedback here.

Code for Getting Sundays in Current Month

The  below code is for getting number of sunday for a current month

//First We find out last date of mont

DateTime today = DateTime.Today;
DateTime endOfMonth = new DateTime(today.Year, today.Month, DateTime.DaysInMonth(today.Year, today.Month));
//get only last day of month
int day = endOfMonth.Day;
      
DateTime now = DateTime.Now;
int count;
count = 0;
for (int i = 0; i < day; ++i)
{
            DateTime d = new DateTime(now.Year, now.Month, i + 1);
            //Compare date with sunday
            if (d.DayOfWeek == DayOfWeek.Sunday)
            {
                count = count + 1;
            }
}

Sum of Two Columns in Gridview

In this blog I explained how to display Sum of two columns values in Gridview.
Scenario
Table structure
Create table test (id int, one int, two int)

I have 2 text box and one insert  button .on clicking to insert  button values of both the two text box got saved in database and I can display them on gridview . Now i want that there should be a 3rd column in Gridview which display the total of two numbers
Desired Output
id
one
two
Sum
1
1
2
3
2
1
1
2
3
1
4
5
4
5
5
10
5
10
10
20


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Sum._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" >
   <head runat="server">  
     <title>Untitled Page</title>
   </head>
 <body> 
    <form id="form1" runat="server">  
       <div>    
       <asp:Label ID="Label1" runat="server" Text="Enter first Number" Width="150px">
       </asp:Label>
       <asp:TextBox ID="txtOne" runat="server" Width="150px"></asp:TextBox>           <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"           ControlToValidate="txtOne" ErrorMessage="Enter first Number"></asp:RequiredFieldValidator>        <br />
     <asp:Label ID="Label2" runat="server" Text="Enter second Number" Width="150px">
     </asp:Label> 
     <asp:TextBox ID="txtTwo" runat="server" Width="150px"></asp:TextBox>           <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"            ControlToValidate="txtTwo" ErrorMessage="Enter second Number">       </asp:RequiredFieldValidator>        <br />  
     <asp:Button ID="btn_insert" runat="server" Text="Insert"            onclick="btn_insert_Click" />    
    <asp:GridView ID="GridView1" runat="server">    
    </asp:GridView>   
    <asp:Label ID="lblmsg" runat="server" Text="Label">
    </asp:Label>     
    </div>   
 </form> 
</body>
 </html>

.CS Code


using System;
usingSystem.Collections;
usingSystem.Configuration;
usingSystem.Data; 
usingSystem.Linq; 
usingSystem.Web;
usingSystem.Web.Security; 
usingSystem.Web.UI;
usingSystem.Web.UI.HtmlControls; 
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts; 
usingSystem.Xml.Linq;
usingSystem.Data.SqlClient;


namespace Sum
{
    public partial class _Default : System.Web.UI.Page     

    {        
      stringconnStr =    ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;        SqlCommandcom;        
      SqlDataAdaptersqlda;
      DataSetds;  
      stringstr;
      protected void Page_Load(objectsender, EventArgs e)
      {
         if(!IsPostBack)
         {
            bindgrid();
         }
     }
     private void bindgrid()
     { 
      SqlConnectioncon = new SqlConnection(connStr);
      con.Open();
      str = "select *,(one + two)as 'Sum'  from test";
      com = new SqlCommand(str, con); 
      sqlda = new SqlDataAdapter(com);
      ds = new DataSet(); 
      sqlda.Fill(ds, "test");
      GridView1.DataMember = "test"; 
      GridView1.DataSource = ds;
      GridView1.DataBind();
      con.Close();
     }
     protected void btn_insert_Click(objectsender, EventArgs e)
     {       
       SqlConnectioncon = new SqlConnection(connStr);
       com = new SqlCommand();  
       com.Connection = con;  
       com.CommandType = CommandType.Text;
       com.CommandText = "insert into test values(@one,@two)";
       com.Parameters.Clear();
       com.Parameters.AddWithValue("@one", txtOne.Text);
       com.Parameters.AddWithValue("@two", txtTwo.Text);
       if(con.State == ConnectionState.Closed)
       con.Open();
       com.ExecuteNonQuery();
       con.Close();
       lblmsg.Text = "Data entered successfully!!!";
       clear();
       bindgrid();
     }   
     private void clear()
     {
        txtOne.Text = ""; 
        txtTwo.Text = "";
     } 
 } 
}