All About ASP.NET and ASP.NET Core 2 Hosting BLOG

Tutorial and Articles about ASP.NET and the latest ASP.NET Core

ASP.NET Hosting - ASPHostPortal :: How To Show Data In Doughnut Chart Using ASP.NET

clock January 15, 2015 06:49 by author Mark

Doughnut Chart In ASP.Net

Today i will explains about how to show data in doughnut chart. In this article we will learn about the Doughnut Chart of ASP.Net.
what's Donut or Doughnut chart?? Donut or Doughnut chart is just a simple pie chart with a hole inside. You can define hole radius to any size you need, both in percent or pixels. Sometimes we need to show data in a chart like a Doughnut chart, such as to show quarterly data and on, so by considering the preceding requirement and to introduce the ASP.Net Doughnut Chart controls I have decided to write this article.

Let us learn about the ASP.Net chart type Doughnut chart that provides a powerful UI and great design quality. We will learn about these chart type controls step-by-step. All the charts are in the System.Web.UI.DataVisualization.Charting namespace.
The chart data is represented using the following points:

  • X Axis: the horizontal line of the chart termed the X axis
  • Y Axis: the vertical line of the chart termed the Y axis

Now let us learn about the properties of the Doughnut chart. A Doughnut chart type has the following common properties:

  • AlternetText: Sets the alternate text when the image is not available.
  • Annotation: Stores the chart annotations.
  • AntiAliasing: sets a value that determines whether anti-aliasing is used when text and graphics are drawn.
  • BackGradientStyle: sets the orientation for the background gradient for the Chart control. Also determines whether a gradient is used, the default is None.
  • Backcolor: sets the background color for a chart, the default color is White.
  • BackImage: sets the background image for the chart control.
  • BackHatchStyle: sets the hatching style for the chart control, the default is None.
  • Height: Sets the height for the chart control.
  • Width: Sets the width for the chart control.
  • Palette: Sets the style with the color for the chart control, the default style is Chocolate.
  • PaletteCustomColors: Sets the custom color for the chart control.
  • Series: Sets the series collection for the chart control.
  • Legends: Sets the series of legends to the chart.

Now let us show the preceding explanation with a practical example by creating a simple web application.

Step 1: Create the table for the chart data

  • Now before creating the application, let us create a table named QuarterwiseSale in a database from where we show the records in the chart using the following script:

CREATE TABLE [dbo].[QuarterwiseSale](    
    [id] [int] IDENTITY(1,1) NOT NULL,    
    [Quarter] [varchar](50) NULL,    
    [SalesValue] [money] NULL,    
 CONSTRAINT [PK_QuarterwiseSale] PRIMARY KEY CLUSTERED     
    (    
    [id] ASC    
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]    
    ) ON [PRIMARY]   

  • The table has the following fields (shown in the following image): 
  • Now insert some records using the following script: 

SET IDENTITY_INSERT [dbo].[QuarterwiseSale] ON          
    GO    
    INSERT [dbo].[QuarterwiseSale] ([id], [Quarter], [SalesValue]) VALUES     (1, N'Q1', 100.0000)    
    GO    
    INSERT [dbo].[QuarterwiseSale] ([id], [Quarter], [SalesValue]) VALUES     (2, N'Q2', 50.0000)    
    GO    
    INSERT [dbo].[QuarterwiseSale] ([id], [Quarter], [SalesValue]) VALUES     (3, N'Q3', 150.0000)    
    GO    
    INSERT [dbo].[QuarterwiseSale] ([id], [Quarter], [SalesValue]) VALUES     (4, N'Q4', 200.0000)    
    GO    
    SET IDENTITY_INSERT [dbo].[QuarterwiseSale] OFF    
    GO   

Now the records will look as in the following image:
Now create the Stored Procedure to fetch the records from the database as in the following:

Create Procedure [dbo].[GetSaleData]    
    (    
    @id int=null             
    )    
    as    
    begin    
    Select Quarter,SalesValue from QuarterwiseSale    
    End 
  

I hope you have the same type of table and records as above.

Step: 2 Create Web Application

  • Now create the project using the following:
  • "Start" - "All Programs" - "Microsoft Visual Studio 2013".
  • "File" - "New Project" - "C#" - "Empty Project" (to avoid adding a master page).
  • Provide the project a name such as UsingDoughnutChart or another as you wish and specify the location.
  • Then right-click on Solution Explorer and select "Add New Item" then select Default.aspx page.
  • Drag and Drop a Chart control from the ToolBox onto the Default.aspx page.
  • Now the Default.aspx source code will be as follows:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>         
    <%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  
        Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>  
    <!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>Article by Vithal Wadje</title>  
    </head>  
    <body bgcolor="silver">  
        <form id="form1" runat="server">  
        <h4 style="color: Navy;">  
            Article for C#Corner  
        </h4>  
        <asp:Chart ID="Chart1" runat="server" BackColor="0, 0, 64" BackGradientStyle="LeftRight"  
            BorderlineWidth="0" Height="360px" Palette="None" PaletteCustomColors="Maroon"  
            Width="380px" BorderlineColor="64, 0, 64">  
            <Titles>  
                <asp:Title ShadowOffset="10" Name="Items" />  
            </Titles>  
            <Legends>  
                <asp:Legend Alignment="Center" Docking="Bottom" IsTextAutoFit="False" Name="Default"  
                    LegendStyle="Row" />  
            </Legends>  
            <Series>  
                <asp:Series Name="Default" />  
            </Series>  
            <ChartAreas>  
                <asp:ChartArea Name="ChartArea1" BorderWidth="0" />  
            </ChartAreas>  
        </asp:Chart>  
        </form>  
    </body>  
    </html> 

  • Create a method to bind the chart control. Then open the default.aspx.cs page and create the following function named Bindchart to bind the Chart Control as in the following:

private void Bindchart()  
        {  
            connection();  
            com = new SqlCommand("GetSaleData", con);  
            com.CommandType = CommandType.StoredProcedure;  
            SqlDataAdapter da = new SqlDataAdapter(com);  
            DataSet ds = new DataSet();  
            da.Fill(ds);         
            DataTable ChartData = ds.Tables[0];  
            //storing total rows count to loop on each Record  
            string[] XPointMember = new string[ChartData.Rows.Count];  
            int[] YPointMember = new int[ChartData.Rows.Count];         
            for (int count = 0; count < ChartData.Rows.Count; count++)  
            {  
                //storing Values for X axis  
                XPointMember[count] = ChartData.Rows[count]["Quarter"].ToString();  
                //storing values for Y Axis  
                YPointMember[count] = Convert.ToInt32(ChartData.Rows[count]["SalesValue"]);  
            }  
            //binding chart control  
            Chart1.Series[0].Points.DataBindXY(XPointMember, YPointMember);         
            //Setting width of line  
            Chart1.Series[0].BorderWidth = 10;  
            //setting Chart type   
            Chart1.Series[0].ChartType = SeriesChartType.Doughnut;       
            foreach (Series charts in Chart1.Series)  
            {  
                foreach (DataPoint point in charts.Points)  
                {  
                    switch (point.AxisLabel)  
                    {  
                        case "Q1": point.Color = Color.YellowGreen; break 
                        case "Q2": point.Color = Color.Yellow; break;  
                        case "Q3": point.Color = Color.SpringGreen; break;
                    }  
                    point.Label = string.Format("{0:0} - {1}", point.YValues[0], point.AxisLabel);         
                }  
            }           
            //Enabled 3D  
          //  Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true;
            con.Close();         
        } 

Note that we have written a small code snippet to provide the different color for each point as in the following:

//To give different color for each point             
    foreach (Series charts in Chart1.Series)      
           {      
               foreach (DataPoint point in charts.Points)      
               {      
                   switch (point.AxisLabel)      
                   {      
                       case "Q1": point.Color = Color.RoyalBlue; break;   
                       case "Q2": point.Color = Color.SaddleBrown; break; 
                       case "Q3": point.Color = Color.SpringGreen; break; 
                   }      
                   point.Label = string.Format("{0:0} - {1}", point.YValues[0], point.AxisLabel);                
               }      
           }       

  • Now, call the preceding function on page load as in the following:

protected void Page_Load(object sender, EventArgs e)      
        {      
            if (!IsPostBack)      
            {      
                Bindchart();                 
            }      
        }  
  

  • The entire code of the default.aspx.cs page will look as follows:

      using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Web;  
    using System.Web.UI;  
    using System.Web.UI.WebControls;  
    using System.Data.SqlClient;  
    using System.Configuration;  
    using System.Data;  
    using System.Web.UI.DataVisualization.Charting;  
    using System.Drawing;         
    public partial class _Default : System.Web.UI.Page  
    {  
        private SqlConnection con;  
        private SqlCommand com;  
        private string constr, query;  
        private void connection()  
        {  
            constr = ConfigurationManager.ConnectionStrings["getconn"].ToString();  
            con = new SqlConnection(constr);  
            con.Open();  
               }  
        protected void Page_Load(object sender, EventArgs e)  
        {  
            if (!IsPostBack)  
            {  
                Bindchart();    
            }  
        }     
        private void Bindchart()  
        {  
            connection();  
            com = new SqlCommand("GetSaleData", con);  
            com.CommandType = CommandType.StoredProcedure;  
            SqlDataAdapter da = new SqlDataAdapter(com);  
            DataSet ds = new DataSet();  
            da.Fill(ds);         
            DataTable ChartData = ds.Tables[0];         
            //storing total rows count to loop on each Record  
            string[] XPointMember = new string[ChartData.Rows.Count];  
            int[] YPointMember = new int[ChartData.Rows.Count];         
            for (int count = 0; count < ChartData.Rows.Count; count++)  
            {  
                //storing Values for X axis  
                XPointMember[count] = ChartData.Rows[count]["Quarter"].ToString();  
                //storing values for Y Axis  
                YPointMember[count] = Convert.ToInt32(ChartData.Rows[count]["SalesValue"]);         
            }  
            //binding chart control  
            Chart1.Series[0].Points.DataBindXY(XPointMember, YPointMember);         
            //Setting width of line  
            Chart1.Series[0].BorderWidth = 10;  
            //setting Chart type   
            Chart1.Series[0].ChartType = SeriesChartType.Doughnut;      
            foreach (Series charts in Chart1.Series)  
            {  
                foreach (DataPoint point in charts.Points)  
                {  
                    switch (point.AxisLabel)  
                    {  
                        case "Q1": point.Color = Color.YellowGreen; break 
                        case "Q2": point.Color = Color.Yellow; break;  
                        case "Q3": point.Color = Color.SpringGreen; break;
                    }  
                    point.Label = string.Format("{0:0} - {1}", point.YValues[0], point.AxisLabel);  
                }  
            }    
            //Enabled 3D  
          //  Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true;  
            con.Close();  
        }  
    } 

We now have the entire logic to bind the chart from the database, let us run the application. The chart will look as follows:

I hope this article work for you.

TOP No#1 Recommended ASP.NET 5 Hosting

ASPHostPortal.com

ASPHostPortal.com  is the leading provider of Windows hosting and affordable ASP.NET Hosting. ASPHostPortal proudly working to help grow the backbone of the Internet, the millions of individuals, families, micro-businesses, small business, and fledgling online businesses. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.



ASP.NET Hosting - ASPHostPortal :: How to Delete Record in GridView Using ASP.Net Ajax and jQuery

clock January 13, 2015 06:14 by author Mark

How to Delete Record in GridView Using ASP.Net Ajax and jQuery

This article will explains how to delete record in GridView using ASP.NET Ajax and jQuery

  • Now first create the Employee table in the database.

CREATE TABLE tbl_Emp(Empid int NULL,EmpName varchar(250) NULL, Gender varchar(20), EmpAddress varchar(500) NULL,City varchar(250) NULL,Salary int NULL, Fk_DepId int)

  • And insert some records into the table:

INSERT INTO tbl_Emp(Empid, EmpName, Gender, EmpAddress, City, Salary, Fk_DepId)VALUES(1, 'A' , 'Male', 'Demo Address', 'Agra', 4000, 3)  
INSERT INTO tbl_Emp(Empid, EmpName, Gender, EmpAddress, City, Salary, Fk_DepId)VALUES(2, 'B' , 'Male', 'Demo Address', 'Ghaziabad', 0, 2)  
INSERT INTO tbl_Emp(Empid, EmpName, Gender, EmpAddress, City, Salary, Fk_DepId)VALUES(3, 'C' , 'Male', 'Demo Address', 'Agra', 1000, 2)  
INSERT INTO tbl_Emp(Empid, EmpName, Gender, EmpAddress, City, Salary, Fk_DepId)VALUES(4, 'D' , 'Female', 'Demo Address', 'Mathura', 1000, 2)  
INSERT INTO tbl_Emp(Empid, EmpName, Gender, EmpAddress, City, Salary, Fk_DepId)VALUES(5, 'E' , 'Female', 'Demo Address', 'Agra', 4000, 3)  
INSERT INTO tbl_Emp(Empid, EmpName, Gender, EmpAddress, City, Salary, Fk_DepId)VALUES(6, 'F' , 'Male', 'Demo Address', 'Agra', 5000, 2)  
INSERT INTO tbl_Emp(Empid, EmpName, Gender, EmpAddress, City, Salary, Fk_DepId)VALUES(7, 'G' , 'Male', 'Demo Address', 'Noida', 4000, 1)  
INSERT INTO tbl_Emp(Empid, EmpName, Gender, EmpAddress, City, Salary, Fk_DepId)VALUES(8, 'H' , 'Male', 'Demo Address', 'Agra', 4000, 5)  
INSERT INTO tbl_Emp(Empid, EmpName, Gender, EmpAddress, City, Salary, Fk_DepId)VALUES(9, 'I' , 'Male', 'Demo Address', 'Noida', 5000, 1) 

  • After creating the table create the application. New -> Web Site.
  • Provide the name “DeleteRecordfromGridViewUsingJQueryAjax”.
  • Then create a new item.

Your aspx page looks likes this:

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
        <title></title> 
    </head> 
    <body> 
        <form id="form1" runat="server"> 
            <div> 
                <asp:GridView ID="gvEmp" AutoGenerateColumns="false"CellPadding="4" runat="server"> 
                    <Columns> 
                    <asp:BoundField HeaderText="EmpId" DataField="EmpId"/>
                    <asp:BoundField HeaderText="EmpName"DataField="EmpName" />

                    <asp:BoundField HeaderText="Gender" DataField="Gender" /> 
            <asp:BoundField HeaderText="EmpAddress" DataField="EmpAddress" /> 
            <asp:TemplateField> 
            <ItemTemplate> 
            <asp:HiddenField ID="hdnEmpId" runat="server" Value='<%#Eval("EmpId") %>'></asp:HiddenField>                                  <asp:LinkButton ID="btnDelete" Text="Delete Emp" runat="server"OnClientClick="DeleteConfirmbox(this.id);"></asp:LinkButton>
                         </ItemTemplate> 
                        </asp:TemplateField> 
                    </Columns> 
          <HeaderStyle BackColor="#5d5d5d" FontBold="true"ForeColor="White" />
                </asp:GridView> 
            </div> 
        </form>
         <script src="Scripts/jquery-1.7.1.min.js"></script>        
        <script type="text/javascript"> 
            function DeleteConfirmbox(val) { 
                // confirm meg check for delete 
                var result = confirm('Are you sure delete Emp Record?'); 
                if (result) {        
                  // this is for get hdnvalue id 
                  var value = val.replace("btnDelete", "hdnEmpId"); 
                  $.ajax({ 
                  type: "POST", 
                  contentType: "application/json; charset=utf-8", 
                  url: "Default.aspx/DeletegvEmpData",//this for calling the web method function in cscode. 
                  data: '{empid: "' + $("#" + value).val() + '" }',// empid value                     
                  dataType: "json", 
                  success: OnSuccess, 
                  failure: function (data) { 
                  alert(data); 
                        }          
                    });                        
                    return false; 
                } 
            }        
            // function OnSuccess 
            function OnSuccess(response) { 
                return false; 
            if (response.d == 'true') 
            {              
            }      
        } 
    </script> 
</body> 
</html> 

  • Now add “using System.Data.SqlClient;” and “using System.Data;” in the code behind and write the following code to delete the record in the grid view in the database.

protected void Page_Load(object sender, EventArgs e)  
  {  
      if (!IsPostBack)  
      {  
          Bindgv();  
      }  
  }       
  protected void Bindgv()  
  {  
      SqlConnection con = new SqlConnection("data source=LENOVO;initial catalog=practise;UID=sa;PWD=connect;");       
      con.Open();  
      SqlCommand cmd = new SqlCommand("Select Top 10 EmpId, EmpName, Gender, EmpAddress from tbl_Emp", con);  
      SqlDataAdapter da = new SqlDataAdapter(cmd);  
      DataSet ds = new DataSet();  
      da.Fill(ds);  
      con.Close();  
      gvEmp.DataSource = ds;  
      gvEmp.DataBind();       
  }       
  [System.Web.Services.WebMethod]  
  public static string DeletegvEmpData(int empid)  
  {  
      string strmsg = string.Empty;  
      SqlConnection con = new SqlConnection("data source=LENOVO;initial catalog=practise;UID=sa;PWD=connect;");       
      SqlCommand cmd = new SqlCommand("delete from tbl_Emp where EmpId= @Empid", con);       
      con.Open();  
      cmd.Parameters.AddWithValue("@Empid", empid);  
      int retval = cmd.ExecuteNonQuery();  
      con.Close();       
      if (retval == 1)  
          strmsg = "true";  
      else  
          strmsg = "false";                   
      return strmsg;  
  }
Add the jQuery library reference in aspx page:
    <script src="Scripts/jquery-1.7.1.min.js"></script> 

Finished, Now you can run this page.

TOP Recommended ASP.NET Hosting

ASPHostPortal.com is the leading provider of Windows hosting and affordable ASP.NET, ASPHostPortal proudly working to help grow the backbone of the Internet, the millions of individuals, families, micro-businesses, small business, and fledgling online businesses. Only $1.00 Month You can develop your bussines. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability. 

 

 



BIG DISCOUNT 70% for Windows Shared Hosting on ASPHostPortal.com

clock January 9, 2015 11:36 by author Dan

Best ASP.NET Hosting :: BIG DISCOUNT Recommendation

Good news for you are searching Best ASP.NET Hosting. ASPHostPortal.com, The Leader of ASP.NET Hosting offer BIG DISCOUNT 70% for their Windows Shared Hosting Plan. They also give uptime and 30 days money back guarantees. There are so many clients prove that ASPHostPortal give fast & stable network, and best technical support. We highly recommend you to host your site on ASPHostPortal.com.

Click the following picture to see their hosting plan. For order and more information please visit ASPHostPortal official site at http://asphostportal.com or please contact them by email at [email protected]

About ASPHostPortal.com

ASPHostPortal.com is Microsoft No #1 Recommended Windows and ASP.NET Spotlight Hosting Partner in United States. Microsoft presents this award to ASPHostPortal.com for the ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch.



ASP.NET Hosting - ASPHostPortal :: Tips Diagnostic And Performance Monitoring in .Net

clock January 8, 2015 06:42 by author Mark

Diagnostic And Performance Monitoring in .Net

In this article we will have a look at what is newer in .Net to help determine the problem area or scope for improvements in your program.
There are a number of tools and utilities available to monitor and tune your .Net application's performance. The .Net framework itself provides a very good infrastructure for performance monitoring and analysis.
Allows the user to monitor application domain level Memory and Processor usage statistics. Previous to .Net we had limited APIs available, which can provide support for reading only the Process level memory usage and CPU usage information. In .net you have access to Processor and Memory usage estimates for a given application domain.

The application domain based resource monitoring feature is available in:

  • Hosting APIs and
  • Event Tracing for Windows(ETW).

By default, application domain level resource monitoring is disabled. This feature has to be enabled in a process to get application domain level resouce consumption details within that process.
The AppDomain class has been enhanced to provide support for this new feature. A process can enable this feature using the AppDomain class's static property MonitoringIsEnabled.

(bool) AppDomain.MonitoringIsEnabled

It is a boolean property. Once this property is enabled in the process, it stays active until the process exits. You can assign only the value 'true'; even though it is a boolean property, assigning the value 'false' to this property causes an Invalid Argument exception.
The AppDomain class provides the following properties to access the Appdomain's resource usage.

AppDomain.MonitoringSurvivedMemorySize

It is a readonly instance property. Provides the number of bytes which is currently allocated by the Appdomain in the managed heap. In other words this property provides the size of memory which is survived the last cycle of garbage collection. This property is updated only after a full, blocking collection occurred.

AppDomain.MonitoringSurvivedProcessMemorySize

It is a readonly static property, provides the number of bytes currently allocated by the current process in the managed heap memory. This an equivalent of GC.GetTotalMemory property.

AppDomain.MonitoringTotalAllocatedMemorySize

This is a readonly instance property. It returns the total size, in bytes, of all memory allocations that have been made by the application domain since it was created, without subtracting memory that has been collected.

AppDomain.MonitoringTotalProcessorTime

It is a readonly instance property. Returns the total processor time utilized by the application domain since the process started. The total time reported by this property includes the time each thread in the process spent executing in that application domain.
The excution time of unmanaged calls made by an application domain, is also counted for that application domain.
The sleeping time of a thread is not counted in association with the application domain's processor usage.

Using Event Tracing for Windows (ETW)

You can now access the ETW events for diagnostic purposes to improve performance.



ASP.NET Hosting - ASPHostPortal :: How To Compare Two Images In ASP.NET

clock January 6, 2015 06:05 by author Mark

Compare Two Images In ASP.NET

This article I will explains how to compare two images in ASP.NET. You also can compare images from a database. Databases do not support binary data comparison.
For comparing two images I'm taking both images from outside but you can replace that with database also. It requires extensive conversion like byte array to image and image to bitmap. In this article I'm comparing each pixel of a bitmap.
Image comparison is not possible in any database because the binary data may not be the same. You can try it with data length also but it will not give exact result.

Using Code:

First we convert our uploaded images into a byte array for converting this byte array into images again and then this byte array are again converted into bitmap for comparison.
    byte[] _barray1;
    byte[] _barray2;

Next we have to read the bytes of uploaded images into our byte arrays like bellow. Here you can alternatively use a database field, which means here we can read the database binary data into our byte array. Here instead of reading bytes from Upload control you can read it from database.

//Reading Bytes From Uploaded Images
            if (FileUpload1.HasFile && FileUpload2.HasFile)
            {
               using(BinaryReader reader1=new BinaryReader(FileUpload1.PostedFile.InputStream))
               {
                   using (BinaryReader reader2=new BinaryReader(FileUpload2.PostedFile.InputStream))
                   {
                       _barray1 = reader1.ReadBytes(FileUpload1.PostedFile.ContentLength);
                       _barray2 = reader2.ReadBytes(FileUpload2.PostedFile.ContentLength);
                   }
               }
            }

Passing this two byte array to our compare method is not possible; for that we have to convert this byte array to images and then the images to Bitmap and pass the two bitmap to our compare method and show the results.

//Converting Byte Array To Image And Then Into Bitmap
            ImageConverter ic = new ImageConverter();
            Image img = (Image)ic.ConvertFrom(_barray1);
            Bitmap bmp1 = new Bitmap(img);
            Image img1 = (Image)ic.ConvertFrom(_barray2);
            Bitmap bmp2 = new Bitmap(img1);
            //Calling Compare Function
            if (Class1.Compare(bmp1,bmp2)==Class1.CompareResult.ciCompareOk)
            {
                Label1.Visible = true;
                Label1.Text = "Images Are Same";
            }
            else if (Class1.Compare(bmp1,bmp2)==Class1.CompareResult.ciPixelMismatch)
            {
                Label1.Visible = true;
                Label1.Text = "Pixel not Matching";
            }
            else if (Class1.Compare(bmp1,bmp2)==Class1.CompareResult.ciSizeMismatch)
            {
                Label1.Visible = true;
                Label1.Text = "Size Is Not Same";
            }

The Compare Method:

This method will perform the actual task of image comparison. This method compares each and every pixel using SHA256Managed and stores the result in enum.
public enum CompareResult
    {
        ciCompareOk,
        ciPixelMismatch,
        ciSizeMismatch
    };

    public static CompareResult Compare(Bitmap bmp1, Bitmap bmp2)
    {
        CompareResult cr = CompareResult.ciCompareOk;

        //Test to see if we have the same size of image
        if (bmp1.Size != bmp2.Size)
        {
            cr = CompareResult.ciSizeMismatch;
        }
        else
        {
            //Convert each image to a byte array
            System.Drawing.ImageConverter ic = new System.Drawing.ImageConverter();
            byte[] btImage1 = new byte[1];
            btImage1 = (byte[])ic.ConvertTo(bmp1, btImage1.GetType());
            byte[] btImage2 = new byte[1];
            btImage2 = (byte[])ic.ConvertTo(bmp2, btImage2.GetType());

            //Compute a hash for each image
            SHA256Managed shaM = new SHA256Managed();
            byte[] hash1 = shaM.ComputeHash(btImage1);
            byte[] hash2 = shaM.ComputeHash(btImage2);

            //Compare the hash values
            for (int i = 0; i < hash1.Length && i < hash2.Length && cr == CompareResult.ciCompareOk; i++)
            {
                if (hash1[i] != hash2[i])
                    cr = CompareResult.ciPixelMismatch;
            }
            shaM.Clear();
        }
        return cr;
    }

Conclusion:

This compares two images either from uploaded images or database binary data.



ASP.NET Hosting -ASPHostPortal.com :: Step by Step to Repair Dropdown Boxes in ASP.NET Datagrids

clock December 22, 2014 06:46 by author Dan

Introduction

Today, I will explain Step by Step to Repair Dropdown Boxes in ASP.NET Datagrids. Alright, this issue isn't silverlight, yet I did experience it in my day work. Truth be told, I've experienced it a few times, so I thought I would compose it up so I can discover it once more.

Error

You compose a page that contains an updatable datagrid, which, when in Editmode, contains a dropdown rundown containing lookup things. The Dropdownbox does not populate, and (later when you get it working) the correct listitem is not chosen.

Cause

Since the Dropdownbox down not existing when the page loads, there is nothing to tie.

Step by Step

You need to append your occasions to some non-standard page occasions to get it to work. The pertinent piece of the .aspx page is underneath (placed this in your datagrid)

<asp:TemplateColumn HeaderText=”Tactic Category”>

<HeaderStyle Font-Size=”Large” Font-Bold=”true” />
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,”TacticCatName”)%>
</ItemTemplate>
<EditItemTemplate>
<%–Notice the GetCat() routine here as the datasource.–%>
<asp:DropDownList id=”ddTacticCatList” runat=”server” DataSource=”<%# GetCat() %>” DataTextField=”TacticCatName” DataValueField=”TacticCatID”>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>

Your code-behind page should look like this (in C#)

private void MainCode()
{
string strID = Request.QueryString["id"].ToString();
//custom code to get the relevant dataset for the entire datgrid
DataSet ds = LMR.TacticSubCatList(strID);
//custom code to bind to the datagrid
Utility.DGDSNullCheck(ds, dgTacticSubCatList, lblTacticSubCatList, “There are no tactic subcategories in the database at this time.”);
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
MainCode();
}
}

protected void dgTacticSubCatList_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//grab the index
dgTacticSubCatList.EditItemIndex = e.Item.ItemIndex;
MainCode();
}

protected void dgTacticSubCatList_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//get the id value of the selected datagrid item
int intTacticSubCatID = (int)dgTacticSubCatList.DataKeys[(int)e.Item.ItemIndex];

//this gets our textbox, also in the datagrid
TextBox EditText = null;
EditText=(TextBox)e.Item.FindControl(“tbTacticSubCatName”);
string strEditText = Convert.ToString(EditText.Text);

//get the value of our dropdown list
DropDownList dd = (DropDownList)e.Item.FindControl(“ddTacticCatList”);
string strTacticCatID = dd.SelectedValue.ToString();
//do our database update
LMR.TacticSubCatEdit(intTacticSubCatID.ToString(),strTacticCatID,strEditText);
//reset the datagrid
dgTacticSubCatList.EditItemIndex = -1;
//give feedback and rebind
lblFeedback.Text = “Your changes have been applied.”;
MainCode();
}

protected void dgTacticSubCatList_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dgTacticSubCatList.EditItemIndex = -1;
MainCode();
}
protected DataTable GetCat()
{
//here is where we get the dataset to populate the dropdown list – it does have to go in an independant function
DataSet ds = LMR.TacticCatList();
return ds.Tables[0];
}

protected void dgTacticSubCatList_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.EditItem)
{
//we set the selcted index in the ItemDataBound event
string strID = Request.QueryString["id"].ToString();
string strSubCatID = dgTacticSubCatList.DataKeys[(int)e.Item.ItemIndex].ToString();
Holder.TacticSubCat tsc = LMR.GetTacticSubCat(strSubCatID);
DropDownList dd = (DropDownList)e.Item.FindControl(“ddTacticCatList”);
dd.SelectedIndex =dd.Items.IndexOf(dd.Items.FindByValue(strID));
}
}

It's as simple as that. Hopefully this article will be usefull for you.



ASP.NET Hosting - ASPHostPortal.com :: Fixing the Circular File References are Not Allowed Error in ASP.NET

clock December 16, 2014 07:18 by author Dan

Introduction

In the event that you get the "circular file references are not allowed" mistake in an ASP.NET Website Project and you don't have any controls that have any undeniable circular references, what does the blunder mean and how would you settle it? Today we will explain to fix that problem to you. By default, in a Website Project, ASP.net compiles one dll per folder in an ASP.net project. So if you have the following setup:

/folder1/Control1.ascx > References Control2
/folder2/Control2.ascx > References Control3
/folder1/Control3.ascx

This means that the folder1 dll will reference the folder2 dll which will again reference the folder1 dll, causing a “circular file reference”.

Regardless of the fact that there is not an immediate way between the controls, circular reference, yet there is an immediate way joining the circular reference through different controls in the same indexes, it can toss the circular record references blunder. Case in point:

/folder1/Control1.ascx > References /folder2/Control2a.ascx
/folder2/Control2b.ascx > References /folder1/Control3.ascx
/folder1/Control3.ascx

Steps to fix it:

>> Adjust the format of your controls (or masterpages) to uproot the round references (typically this will mean moving one control to an alternate envelope – in the case above, move control2 to folder1). This is the favored arrangement.
>> Use batch="false" in the assemblage tag of the web.config document. This will result in another dll to be made for each one control/page in the site. This ought to settle the blunder however is truly lousy for execution, so it ought to be kept away from (particularly on creation locales.

Hopefully this article can help you to fix your ASP.NET problem.



ASPHostPortal.com Proudly Launches ASP.NET 5 Hosting

clock December 10, 2014 05:42 by author Dan

ASPHostPortal.com, The Best, Cheap and Recommended ASP.NET Hosting proudly announced the availability of ASP.NET 5 Hosting in their hosting deals. ASPHostPortal offer ASP.NET 5 Hosting at affordable price, easy and instant setup, and best customer support.

Finally, the long awaited release of ASP.NET 5, ASPHostPortal are happy to announce the availability of the .NET Framework 5 for all our hosting packages. It is a highly compatible, in-place update to the .NET Framework 4, 4.5 and 4.5.2. ASP.NET 5 has been re-imagined from the ground up to provide a faster development experience, best in class performance, full side-by-side support.

ASP.NET 5 is clean and free of bugs and is a composable .NET stack for building modern web applications for both cloud and on-premises servers. ASP.NET 5, with the help of Visual Studio 2015, lets you create modern web applications. Modern web applications not only target all devices, including PCs, Macs, Tablets and smartphones, but also work with any browser or operating system.

ASP.NET 5 gives you greater flexibility by being able to run on three runtimes:

Full .NET CLR

The full .NET CLR is the default runtime for projects in Visual Studio. It provides the entire API set and is your best option for backwards compatibility.

Core CLR (cloud-optimized runtime)

The Core CLR is a lean and completely modular runtime for ASP.NET 5 projects. This CLR has been re-designed into components so you have the flexibility to include only those features that you need in your app. You add the components as NuGet packages. When you are finished, your app is dependent only on required features. By re-factoring the runtime into separate components, we can deliver improvements to the components more quickly because each component is updated on its own schedule. The Core CLR is about 11 megabytes instead of around 200 megabytes for the full .NET CLR. The Core CLR can be deployed with your app and different versions of the Core CLR can run side-by-side (both of these advantages are described in greater detail below).

Cross-Platform CLR

Microsoft will release a cross-platform runtime for Linux and Mac OS X. When released, this runtime will enable you to develop and run .NET apps on Mac and Linux devices. They will work closely with the Mono community on this effort. Until its release, you can use the Mono CLR for cross-platform development.

ASPHostPortal.com is The Best, Cheap and Recommended ASP.NET Hosting. With the ASP.NET 5 in their hosting deal will make ASPHostPortal continue to be the Best ASP.NET hosting providers. To learn more about ASP.NET 5 Hosting, please visit http://asphostportal.com/ASPNET-5-Hosting.

About ASPHostPortal.com :

ASPHostPortal.com is The Best, Cheap and Recommended ASP.NET Hosting. ASPHostPortal.com has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2012, .NET 4.5.2/ASP.NET 4.5.1, ASP.NET MVC 6.0/5.2, Silverlight 5 and Visual Studio Lightswitch. ASPHostPortal include shared hosting, reseller hosting, and sharepoint hosting, with speciality in ASP.NET, SQL Server, and architecting highly scalable solutions. ASPHostPortal.com strive to supply probably the most technologically advanced hosting solutions available to all consumers the world over. Protection, trustworthiness, and performance are on the core of hosting operations to make certain each and every website and/or software hosted is very secured and performs at the best possible level.



Cheap ASP.NET 4.5 Hosting

We’re a company that works differently to most. Value is what we output and help our customers achieve, not how much money we put in the bank. It’s not because we are altruistic. It’s based on an even simpler principle. "Do good things, and good things will come to you".

Success for us is something that is continually experienced, not something that is reached. For us it is all about the experience – more than the journey. Life is a continual experience. We see the Internet as being an incredible amplifier to the experience of life for all of us. It can help humanity come together to explode in knowledge exploration and discussion. It is continual enlightenment of new ideas, experiences, and passions


Author Link

 photo ahp banner aspnet-01_zps87l92lcl.png

 

Corporate Address (Location)

ASPHostPortal
170 W 56th Street, Suite 121
New York, NY 10019
United States

Tag cloud

Sign in