Wednesday, December 11, 2013

VS debugger not getting attach to IE

VS debugger not getting attach to IE

Recently I had this weird error where Microsoft Visual Studio 2010 (VS 2010) debugger was not getting attached to Microsoft Internet Explorer (IE). The only change was that IE was upgraded from IE 9 to IE 10. Till before the upgrade everything was working fine. The error is pasted below.
Attaching the Script debugger to process '[XXXX] iexplore.exe' on machine 'XX-XX-XXX' failed. A debugger is already attached.
The solution for the above problem is pretty simple as well. Open the command prompt (cmd) in “Run as Admin” mode. Run the following command.
regsvr32.exe "%ProgramFiles(x86)%\Common Files\Microsoft Shared\VS7Debug\msdbg2.dll”
“regsvr32” is a command line utility provided my Microsoft to register and unregister dlls in the Windows Registry.

Tuesday, September 3, 2013

Export Data Into Excel in a Pre-defined Template Using StreamWriter

 Exporting data into Excel is a common requirement. In this article, I will explain the exportation of data into Excel in a pre-defined Excel template. 

For exporting data into a pre-defined Excel sheet, we will create an Excel sheet (as in the following) in the folder "ExcelTemplates" with the file name "Reports-ProductDetails.xls":

 

Create a table called Product:



CREATE TABLE [dbo].[Product](

 [product_id] [int] IDENTITY(1,1) NOT NULL,

 [product_name] [nvarchar](max) NULL,

 [product_rate] [money] NULL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO;



Added some records:

AddedRecord1.png          

  

Page design code:

 <form id="form1" runat="server">    <div>        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None">            <AlternatingRowStyle BackColor="White" />            <Columns>                <asp:BoundField DataField="product_id" HeaderText="Product Id" InsertVisible="False" ReadOnly="True" SortExpression="product_id" />                <asp:BoundField DataField="product_name" HeaderText="Product Name" SortExpression="product_name" />                <asp:BoundField DataField="product_rate" HeaderText="Product Rate" SortExpression="product_rate" />            </Columns>            <EditRowStyle BackColor="#2461BF" />            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />            <RowStyle BackColor="#EFF3FB" />            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />            <SortedAscendingCellStyle BackColor="#F5F7FB" />            <SortedAscendingHeaderStyle BackColor="#6D95E1" />            <SortedDescendingCellStyle BackColor="#E9EBEF" />            <SortedDescendingHeaderStyle BackColor="#4870BE" />        </asp:GridView>    </div>        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestConnectionString %>" SelectCommand="SELECT * FROM [Product]"></asp:SqlDataSource>        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Export to Excel" />
</form>

Now here is the code to export the data using a StreamWriter object:

       


using System; 
using System.Collections.Generic; 
using System.Linq;using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.IO; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 
public partial class ExporttoExcel : System.Web.UI.Page 
{     
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString);    protected void Page_Load(object sender, EventArgs e)     
  {         
             GridView1.DataBind();   
  }   
 protected void Button1_Click(object sender, EventArgs e)    
 {       
       SqlCommand command = new SqlCommand();         
       command.CommandText = "SELECT * FROM Product";      
       command.CommandType = CommandType.Text;        
       command.Connection = con; 
       SqlDataAdapter da = new SqlDataAdapter(command); 
       DataSet ds = new DataSet();        da.Fill(ds, "ProductDetails"); 
       if (ds.Tables[0].Rows.Count < 0) 
           return;         
       var fpath = string.Empty; 
        if (Directory.Exists(Server.MapPath("ExcelTemplates")) == false) 
            Directory.CreateDirectory(Server.MapPath("ExcelTemplates")); 
       fpath = Server.MapPath("ExcelTemplates/Reports-ProductDetails" +        Session.SessionID + ".xls"); 
         if (File.Exists(fpath) == false) 
            File.Create(fpath).Close();
         else 
           File.Create(fpath).Close(); 
        if (fpath.Trim() != string.Empty) 
             DataSetToExcel(ds, fpath, "");     
}

  void DataSetToExcel(DataSet dsExport, string path, string tableName)                                      {                                                                                                                                                                                                         if (path == string.Empty) return;                                                                                                         StreamWriter SWriter = new StreamWriter(path);                                                                           string str = string.Empty;                                                                                                                      Int32 colspan = dsExport.Tables[0].Columns.Count;                                                                   str += "<Table border=2><TR><TD align='center'       colspan="+   Convert.ToString(colspan) + ">" + tableName + "</TD></tr>"; 

        str += "<tr><TD align='left' bgcolor='#D1DAA7' style='font-size:18px' colspan="Convert.ToString(colspan) + ">" + tableName + "Product Details</TD></tr>";        str += "<tr></tr><tr><TD align='left' bgcolor='#D1DAA7' style='font-size:10px' colspan=" + Convert.ToString(colspan) + ">" + tableName + " Printed On  " + DateTime.Now.Date + "</TD></tr><tr></TR>"; 

    foreach (DataColumn DBCol in dsExport.Tables[0].Columns)        {            str += "<TD   bgcolor='808080'>" + DBCol.ColumnName + "</TD>";        }        str += "</TR>";        foreach   (DataRow   DBRow in dsExport.Tables[0].Rows)        {            str += "<TR>";            foreach (DataColumn   DBCol in dsExport.Tables[0].Columns)            {                str += "<TD>" + Convert.ToString(DBRow[DBCol.ColumnName]) + "</TD>";            }            str += "</TR>";        }        str += "</TABLE>";        SWriter.WriteLine(str);        SWriter.Flush();        SWriter.Close();        if   (path.Length > 5)            DownloadFile(path);    }                                                                                                                 



After exporting the data into Excel, the report looks like this:


FinalResult.png