Click here to Skip to main content
16,012,352 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi developer
I am load a csv file in dataset and show them in datagridveiw .
I know dataset split comma values automaticaly and show result in datagridview . but my problem is
My some csv file values are seprated with ";" and some csv file values seprated with "," and I want a to replace wild card also from my csv file. so I m taken this code from project.com I think i am not write a code correctly
please solve my problem.
public static DataSet Convert(string filename,string TableName, string delimiter)
{
    //The DataSet to Return
    DataSet result = new DataSet();

    //Open the file in a stream reader.
    StreamReader s = new StreamReader(filename);

    //Split the first line into the columns
    string[] columns = s.ReadLine().Split(delimiter.ToCharArray());

    //Add the new DataTable to the RecordSet
    result.Tables.Add(TableName);

    //Cycle the colums, adding those that don't exist yet
    //and sequencing the one that do.
    foreach (string col in columns)
    {
        bool added = false;
        string next = "";
        int i = 0;
        while (!added)
        {
            //Build the column name and remove any unwanted characters.
            string columnname = col + next;
            //columnname = columnname.Replace("#", "");
            //columnname = columnname.Replace("'", "");
            columnname = columnname.Replace("/", ",");

            //See if the column already exists
            if (!result.Tables[TableName].Columns.Contains(columnname))
            {
                //if it doesn't then we add it here and mark it as added
                result.Tables[TableName].Columns.Add(columnname);
                added = true;
            }
            else
            {
                //if it did exist then we increment the sequencer and try again.
                i++;
                next = "_" + i.ToString();
            }
        }
    }

    //Read the rest of the data in the file.
    string AllData = s.ReadToEnd();

    //Split off each row at the Carriage Return/Line Feed
    //Default line ending in most windows exports.
    //You may have to edit this to match your particular file.
    //This will work for Excel, Access, etc. default exports.
    string[] rows = AllData.Split("\r\n".ToCharArray());

    //Now add each row to the DataSet
    foreach (string r in rows)
    {
        //Split the row at the delimiter.
        string[] items = r.Split(delimiter.ToCharArray());

        //Add the item
        result.Tables[TableName].Rows.Add(items);
    }

    //Return the imported data.
    return result;

}





public void Browse_Click(object sender, EventArgs e)
{
    try
    {
        DialogResult RESULT = this.OpenFileDialogbox.ShowDialog();
        if (RESULT == DialogResult.OK)
        {
            string filename = OpenFileDialogbox.FileName;
            Locations.Text = filename;
        }
        else
        {
            MessageBox.Show("Dear User Please select Path");

        }

        DataSet dataset = Form1.Convert(Locations.Text);
       Datagidveiw1.DataSource = dataset.Tables[0].DefaultView;
    }
    catch (System.Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

}


when I m write a code
DataSet dataset = Form1.Convert(Locations.Text);
location text can not be accpet by convert method and how its load in datagridview ?

please solve my problem
Posted
Updated 23-Nov-10 23:18pm
v5
Comments
JF2015 24-Nov-10 5:03am    
Edited to correct code formatting.
Manfred Rudolf Bihy 24-Nov-10 5:06am    
That's strange how could we both have this open for editing? I thought that is not possible?

1 solution

Hi,

Please follow steps:

1. Open .CSV file with programatically
2. Follow one standard (either you can set delimiter by ; or ,) and modify file accordingly
3. Save .CSV file (with only one delimiter)
4. Load in DataSet



Please do let me know, if you have any doubt.

Please provide "Vote":thumbsup: if this would be helpful, and make "Accept Answer" if this would be correct answer.:rose:

Thanks,
Imdadhusen
 
Share this answer
 
v2
Comments
hance_micle 1-Dec-10 6:21am    
This is repeated Question and Answer?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900