About Me

My photo
a Dynamic and Energetic guy.....

Thursday, October 29, 2009



When we add controls dynamically, we are getting error like this.
Then we have to add this code to .ASPX file's code

public override void VerifyRenderingInServerForm(Control control)
{
Confirms that an HtmlForm control is rendered for the
specified ASP.NET server control at run time.
No code required here.
}


Then we are all works fine :) :) :)

read a .CSV file & create a dataset

protected void CreateImportDataSet()
{
if (FileUpload1.PostedFile.FileName == string.Empty)
{ lblMsg.Visible = true; return; }

else
{
//restrict user to upload other file extenstion
string[] FileExt = FileUpload1.FileName.Split('.');
string FileEx = FileExt[FileExt.Length - 1];
if (FileEx.ToLower() == "csv")
{

}
else { lblMsg.Visible = true; return; }
}

ArrayList counterOfUnNecessaryColumns = new ArrayList();

//create object for CSVReader and pass the stream
CSVReader reader = new CSVReader(FileUpload1.PostedFile.InputStream);
//get the header
string[] headers = reader.GetCSVLine(counterOfUnNecessaryColumns, 0);
DataTable dt = new DataTable();

ArrayList necessaryHeaders = new ArrayList();
necessaryHeaders.Add("First Name");
necessaryHeaders.Add("Middle Name");
necessaryHeaders.Add("Last Name");
necessaryHeaders.Add("Job Title");
necessaryHeaders.Add("E-mail Address");

necessaryHeaders.Add("Business Street");
necessaryHeaders.Add("Business City");
necessaryHeaders.Add("Business State");
necessaryHeaders.Add("Business Postal Code");
necessaryHeaders.Add("Mobile Phone");
necessaryHeaders.Add("Home Phone");

//add headers
for (int counter = 0; counter < headers.Length; counter++)
{
if (necessaryHeaders.Contains(headers[counter]))
{
dt.Columns.Add(headers[counter]);

}
else
{
counterOfUnNecessaryColumns.Add(counter);
}
}
dt.Columns.Add("PersonIndex");

string[] data;
int personIndex = 0;
while ((data = reader.GetCSVLine(counterOfUnNecessaryColumns, personIndex)) != null)
{
dt.Rows.Add(data);
personIndex++;
}
gv.DataSource = dt;
gv.DataBind();

dt.TableName = "MyContacts";
dt.WriteXml(@"D:/mad.xml");
Session["CsvDataSet"] = dt;
}

=====================================Base Class ====================================

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using System.Collections;

public class CSVReader
{
private Stream objStream;
private StreamReader objReader;

//add name space System.IO.Stream
public CSVReader(Stream filestream) : this(filestream, null) { }

public CSVReader(Stream filestream, Encoding enc)
{
this.objStream = filestream;
//check the Pass Stream whether it is readable or not
if (!filestream.CanRead)
{
return;
}
objReader = (enc != null) ? new StreamReader(filestream, enc) : new StreamReader(filestream);
}


//parse the Line
public string[] GetCSVLine(ArrayList counterOfNecessaryColumns,int personIndex)
{
string data = objReader.ReadLine();
if (data == null) return null;
if (data.Length == 0) return new string[0];

ArrayList result = new ArrayList();
//parsing CSV Data
ParseCSVData(result, data, counterOfNecessaryColumns,personIndex);
return (string[])result.ToArray(typeof(string));
}

private void ParseCSVData(ArrayList result, string data, ArrayList counterOfNecessaryColumns,int personIndex)
{
int position = -1;
while (position < data.Length)
result.Add(ParseCSVField(ref data, ref position));

//Removing Unnecessary columns
for (int i = 0; i < counterOfNecessaryColumns.Count; i++)
{
try
{
result.RemoveAt(int.Parse(counterOfNecessaryColumns[i].ToString()) - i);
}
catch { }
}
result.Add(personIndex.ToString());
}

private string ParseCSVField(ref string data, ref int StartSeperatorPos)
{
if (StartSeperatorPos == data.Length - 1)
{
StartSeperatorPos++;
return "";
}

int fromPos = StartSeperatorPos + 1;
if (data[fromPos] == '"')
{
int nextSingleQuote = GetSingleQuote(data, fromPos + 1);
int lines = 1;
while (nextSingleQuote == -1)
{
data = data + "\n" + objReader.ReadLine();
nextSingleQuote = GetSingleQuote(data, fromPos + 1);
lines++;
if (lines > 20)
throw new Exception("lines overflow: " + data);
}
StartSeperatorPos = nextSingleQuote + 1;
string tempString = data.Substring(fromPos + 1, nextSingleQuote - fromPos - 1);
tempString = tempString.Replace("'", "''");
return tempString.Replace("\"\"", "\"");
}

int nextComma = data.IndexOf(',', fromPos);
if (nextComma == -1)
{
StartSeperatorPos = data.Length;
return data.Substring(fromPos);
}
else
{
StartSeperatorPos = nextComma;
return data.Substring(fromPos, nextComma - fromPos);
}
}

private int GetSingleQuote(string data, int SFrom)
{
int i = SFrom - 1;
while (++i < data.Length)
if (data[i] == '"')
{
if (i < data.Length - 1 && data[i + 1] == '"')
{
i++;
continue;
}
else
return i;
}
return -1;
}
}

Thursday, October 22, 2009

Wednesday, October 21, 2009

Diffrence between WebSite & WebApplication projects in .NET

A web site is just a group of all files in a folder and sub folders.

There is no project file.

All files under the specific folder - including your word documents, text files, images etc are part of the web site.

We have to deploy all files including source files (unless you pre compile them) to the server.

Files are compiled dynamically during run time.

There will be no single assembly created and you will nto see a "Bin" folder.

The benefits of this model is, you do not need a project file or virtual directory to open a project.

Disadvantage is, all files under the folder and considered to be part of the web site[since there is no project file].

The only way you can exclude a file from the website within the same directory is by renaming them with the extension .exclude

Friday, October 9, 2009

Sharepoint in Sinhala

Many developers had difficulties to implement Sharepoint in their own language.
In srilanka we had same issue.
So we worked hard & finally we got the results.







My Masters