将csv导入datagrid,添加列数据 [英] importing csv to datagrid, adding column data

查看:82
本文介绍了将csv导入datagrid,添加列数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以导入一个没有问题的csv文件。我还可以在导入时将列添加到

数据网格中。我希望能够在第3行开始导入

行。这将获取数据网格所需的标头。一旦我能够达到这一点,我需要一些方法才能将新数据添加到已添加的新列中。
>
以下是我的一些代码:


//从CSV文件导入数据的功能

public DataSet ConnectCSV(string filetable)

{

DataSet ds = new DataSet();

try

{

/ /您可以使用DSN或

连接字符串连接到驱动程序


//如果要使用DSN,请创建如下连接字符串

少连接。 DBQ属性设置目录的路径

包含CSV文件


string strConnString =" Driver = {Microsoft Text Driver(* .txt;

* .csv)}; Dbq =" + txtCSVFolderPath.Text.Trim()+" ;; Exten sions = asc,csv,tab,txt; Persist

安全信息= False" ;;

string sql_select;

System.Data.Odbc.OdbcConnection conn;


//创建与CSV的连接文件

conn = new System.Data.Odbc.OdbcConnection(strConnString.Trim());


//使用DSN创建连接时,请使用以下命令line

// conn = new System.Data.Odbc.OdbcConnection(DSN =" MyDSN");


//打开连接
conn.Open();

//从CSV中获取记录

sql_select =" select * from [" + filetable +"]" ;;


obj_oledb_da = new

System.Data.Odbc.OdbcDataAdapter(sql_select,conn);

//填充数据集来自的记录CSV文件

obj_oledb_da.Fill(ds," Stocks");

ds.Tables [" Stocks"]。Columns.Add(" Name");


ds.Tables [" Stocks"]。Columns.Add(" Description");

ds.Tables [" Stocks"]。 Columns.Add(" CUSIP");

ds.Tables [" Stocks"]。Columns.Add(" SEDOL1");

ds.Tables [ " Stocks" ..Columns.Add(" ISIN");


//设置数据网格属性

dGridCSVdata.DataSource = ds;

dGridCSVdata.DataMember =" Stocks";


//关闭与CSV文件的连接

conn.Close( );

}

catch(例外e)//错误

{

MessageBox.Show(e。消息);

}

返回ds;

}

解决方案

JMO,


您是否更容易导入所有内容然后删除前三行

行?


-

问候,

Robson Siqueira

企业架构师

" JMO" < j。********** @ gmail.com写信息

新闻:11 ******************* ***@38g2000cwa.googlegro ups.com ...


>我可以导入一个没有问题的csv文件。我还可以在导入时将列添加到

数据网格中。我希望能够在第3行开始导入

行。这将获取数据网格所需的标头。一旦我能够达到这一点,我需要一些方法才能将新数据添加到已添加的新列中。
>
以下是我的一些代码:


//从CSV文件导入数据的功能

public DataSet ConnectCSV(string filetable)

{

DataSet ds = new DataSet();

try

{

/ /您可以使用DSN或

连接字符串连接到驱动程序


//如果要使用DSN,请创建如下连接字符串

少连接。 DBQ属性设置目录的路径

包含CSV文件


string strConnString =" Driver = {Microsoft Text Driver(* .txt;

* .csv)}; Dbq =" + txtCSVFolderPath.Text.Trim()+" ;; Exten sions = asc,csv,tab,txt; Persist

安全信息= False" ;;

string sql_select;

System.Data.Odbc.OdbcConnection conn;


//创建与CSV的连接文件

conn = new System.Data.Odbc.OdbcConnection(strConnString.Trim());


//使用DSN创建连接时,请使用以下命令line

// conn = new System.Data.Odbc.OdbcConnection(DSN =" MyDSN");


//打开连接
conn.Open();

//从CSV中获取记录

sql_select =" select * from [" + filetable +"]" ;;


obj_oledb_da = new

System.Data.Odbc.OdbcDataAdapter(sql_select,conn);

//填充数据集随着来自CSV文件的记录

obj_oledb_da.Fill(ds," Stocks");

ds.Tables [" Stocks"]。Columns.Add(" Name" );


ds.Tables [" Stocks"]。Columns.Add(" Description");

ds.Tables [" Stocks" ] .Columns.Add(" CUSIP");

ds.Tables [" Stocks"]。Columns.Add(" SEDOL1");

ds。表格[" Stocks]]。Columns.Add(" ISIN");


//设置数据网格属性


dGridCSVdata。 DataSource = ds;

dGridCSVdata.DataMember =" Stocks";


//关闭与CSV文件的连接

conn。关闭();

}

catch(例外e)//错误

{

MessageBox.Show( e.Message);

}

返回ds;

}



Robson,


我该怎么办?


JMO


Robson Siqueira写道:


JMO,


你是不是更容易导入所有内容然后删除前三行

行?


-

问候,

Robson Siqueira

企业架构师

" JMO" < j。********** @ gmail.com写信息

新闻:11 ******************* ***@38g2000cwa.googlegro ups.com ...


我可以导入一个没有问题的csv文件。我还可以在导入时将列添加到

数据网格中。我希望能够在第3行开始导入

行。这将获取数据网格所需的标头。一旦我能够达到这一点,我需要一些方法才能将新数据添加到已添加的新列中。
>
以下是我的一些代码:


//从CSV文件导入数据的功能

public DataSet ConnectCSV(string filetable)

{

DataSet ds = new DataSet();

try

{

/ /您可以使用DSN或

连接字符串连接到驱动程序


//如果要使用DSN,请创建如下连接字符串

少连接。 DBQ属性设置目录的路径

包含CSV文件


string strConnString =" Driver = {Microsoft Text Driver(* .txt;

* .csv)}; Dbq =" + txtCSVFolderPath.Text.Trim()+" ;; Exten sions = asc,csv,tab,txt; Persist

安全信息= False" ;;

string sql_select;

System.Data.Odbc.OdbcConnection conn;


//创建与CSV的连接文件

conn = new System.Data.Odbc.OdbcConnection(strConnString.Trim());


//使用DSN创建连接时,请使用以下命令line

// conn = new System.Data.Odbc.OdbcConnection(DSN =" MyDSN");


//打开连接
conn.Open();

//从CSV中获取记录

sql_select =" select * from [" + filetable +"]" ;;


obj_oledb_da = new

System.Data.Odbc.OdbcDataAdapter(sql_select,conn);

//使用CSV文件中的记录填充数据集

obj_oledb_da.Fill(ds," Stocks");

ds.Tables [" Stocks"]。Columns.Add( 姓名;


ds.Tables [" Stocks"]。Columns.Add(" Description");

ds.Tables [ " Stocks" ..Columns.Add(" CUSIP");

ds.Tables [" Stocks"]。Columns.Add(" SEDOL1");

ds.Tables [" Stocks"]。Columns.Add(" ISIN");


//设置数据网格属性


dGridCSVdata.DataSource = ds;

dGridCSVdata.DataMember =" Stocks";


//关闭与CSV文件的连接

conn.Close();

}

catch(例外e)//错误

{

MessageBox.Show(e.Message);

}

返回ds;

}


Robson,


我该怎么办?


JMO


Robson Siqueira写道:


JMO,


你不是更容易导入所有东西然后删除前三个

行?


-

问候,

Robson Siqueira

企业建筑师

JMO < j。********** @ gmail.com写信息

新闻:11 ******************* ***@38g2000cwa.googlegro ups.com ...


我可以导入一个没有问题的csv文件。我还可以在导入时将列添加到

数据网格中。我希望能够在第3行开始导入

行。这将获取数据网格所需的标头。一旦我能够达到这一点,我需要一些方法才能将新数据添加到已添加的新列中。
>
以下是我的一些代码:


//从CSV文件导入数据的功能

public DataSet ConnectCSV(string filetable)

{

DataSet ds = new DataSet();

try

{

/ /您可以使用DSN或

连接字符串连接到驱动程序


//如果要使用DSN,请创建如下连接字符串

少连接。 DBQ属性设置目录的路径

包含CSV文件


string strConnString =" Driver = {Microsoft Text Driver(* .txt;

* .csv)}; Dbq =" + txtCSVFolderPath.Text.Trim()+" ;; Exten sions = asc,csv,tab,txt; Persist

安全信息= False" ;;

string sql_select;

System.Data.Odbc.OdbcConnection conn;


//创建与CSV的连接文件

conn = new System.Data.Odbc.OdbcConnection(strConnString.Trim());


//使用DSN创建连接时,请使用以下命令line

// conn = new System.Data.Odbc.OdbcConnection(DSN =" MyDSN");


//打开连接
conn.Open();

//从CSV中获取记录

sql_select =" select * from [" + filetable +"]" ;;


obj_oledb_da = new

System.Data.Odbc.OdbcDataAdapter(sql_select,conn);

//使用CSV文件中的记录填充数据集

obj_oledb_da.Fill(ds," Stocks");

ds.Tables [" Stocks"]。Columns.Add( 姓名;


ds.Tables [" Stocks"]。Columns.Add(" Description");

ds.Tables [ " Stocks" ..Columns.Add(" CUSIP");

ds.Tables [" Stocks"]。Columns.Add(" SEDOL1");

ds.Tables [" Stocks"]。Columns.Add(" ISIN");


//设置数据网格属性


dGridCSVdata.DataSource = ds;

dGridCSVdata.DataMember =" Stocks";


//关闭与CSV文件的连接

conn.Close();

}

catch(例外e)//错误

{

MessageBox.Show(e.Message);

}

返回ds;

}


I can import a csv file with no problem. I can also add columns to the
datagrid upon import. I want to be able to start importing at the 3rd
row. This will pick up the headers necessary for the datagrid. Once I
can get to that point I need some way to be able to add new data only
to the new columns that were added.

Here is some of my code:

//Function For Importing Data From CSV File
public DataSet ConnectCSV(string filetable)
{
DataSet ds = new DataSet();
try
{
// You can get connected to driver either by using DSN or
connection string

// Create a connection string as below, if you want to use DSN
less connection. The DBQ attribute sets the path of directory which
contains CSV files

string strConnString="Driver={Microsoft Text Driver (*.txt;
*.csv)};Dbq="+txtCSVFolderPath.Text.Trim()+";Exten sions=asc,csv,tab,txt;Persist
Security Info=False";
string sql_select;
System.Data.Odbc.OdbcConnection conn;

//Create connection to CSV file
conn = new System.Data.Odbc.OdbcConnection(strConnString.Trim ());

// For creating a connection using DSN, use following line
//conn = new System.Data.Odbc.OdbcConnection(DSN="MyDSN");

//Open the connection
conn.Open();
//Fetch records from CSV
sql_select = "select * from ["+ filetable +"]";

obj_oledb_da = new
System.Data.Odbc.OdbcDataAdapter(sql_select,conn);
//Fill dataset with the records from CSV file
obj_oledb_da.Fill(ds,"Stocks");
ds.Tables["Stocks"].Columns.Add("Name");

ds.Tables["Stocks"].Columns.Add("Description");
ds.Tables["Stocks"].Columns.Add("CUSIP");
ds.Tables["Stocks"].Columns.Add("SEDOL1");
ds.Tables["Stocks"].Columns.Add("ISIN");

//Set the datagrid properties

dGridCSVdata.DataSource=ds;
dGridCSVdata.DataMember="Stocks";

//Close Connection to CSV file
conn.Close();
}
catch(Exception e) //Error
{
MessageBox.Show(e.Message);
}
return ds;
}

解决方案

JMO,

Isn''t easier for you to import everything and then remove the 1st three
rows?

--
Regards,
Robson Siqueira
Enterprise Architect
"JMO" <j.**********@gmail.comwrote in message
news:11**********************@38g2000cwa.googlegro ups.com...

>I can import a csv file with no problem. I can also add columns to the
datagrid upon import. I want to be able to start importing at the 3rd
row. This will pick up the headers necessary for the datagrid. Once I
can get to that point I need some way to be able to add new data only
to the new columns that were added.

Here is some of my code:

//Function For Importing Data From CSV File
public DataSet ConnectCSV(string filetable)
{
DataSet ds = new DataSet();
try
{
// You can get connected to driver either by using DSN or
connection string

// Create a connection string as below, if you want to use DSN
less connection. The DBQ attribute sets the path of directory which
contains CSV files

string strConnString="Driver={Microsoft Text Driver (*.txt;
*.csv)};Dbq="+txtCSVFolderPath.Text.Trim()+";Exten sions=asc,csv,tab,txt;Persist
Security Info=False";
string sql_select;
System.Data.Odbc.OdbcConnection conn;

//Create connection to CSV file
conn = new System.Data.Odbc.OdbcConnection(strConnString.Trim ());

// For creating a connection using DSN, use following line
//conn = new System.Data.Odbc.OdbcConnection(DSN="MyDSN");

//Open the connection
conn.Open();
//Fetch records from CSV
sql_select = "select * from ["+ filetable +"]";

obj_oledb_da = new
System.Data.Odbc.OdbcDataAdapter(sql_select,conn);
//Fill dataset with the records from CSV file
obj_oledb_da.Fill(ds,"Stocks");
ds.Tables["Stocks"].Columns.Add("Name");

ds.Tables["Stocks"].Columns.Add("Description");
ds.Tables["Stocks"].Columns.Add("CUSIP");
ds.Tables["Stocks"].Columns.Add("SEDOL1");
ds.Tables["Stocks"].Columns.Add("ISIN");

//Set the datagrid properties

dGridCSVdata.DataSource=ds;
dGridCSVdata.DataMember="Stocks";

//Close Connection to CSV file
conn.Close();
}
catch(Exception e) //Error
{
MessageBox.Show(e.Message);
}
return ds;
}



Robson,

How would I do that?

JMO

Robson Siqueira wrote:

JMO,

Isn''t easier for you to import everything and then remove the 1st three
rows?

--
Regards,
Robson Siqueira
Enterprise Architect
"JMO" <j.**********@gmail.comwrote in message
news:11**********************@38g2000cwa.googlegro ups.com...

I can import a csv file with no problem. I can also add columns to the
datagrid upon import. I want to be able to start importing at the 3rd
row. This will pick up the headers necessary for the datagrid. Once I
can get to that point I need some way to be able to add new data only
to the new columns that were added.

Here is some of my code:

//Function For Importing Data From CSV File
public DataSet ConnectCSV(string filetable)
{
DataSet ds = new DataSet();
try
{
// You can get connected to driver either by using DSN or
connection string

// Create a connection string as below, if you want to use DSN
less connection. The DBQ attribute sets the path of directory which
contains CSV files

string strConnString="Driver={Microsoft Text Driver (*.txt;
*.csv)};Dbq="+txtCSVFolderPath.Text.Trim()+";Exten sions=asc,csv,tab,txt;Persist
Security Info=False";
string sql_select;
System.Data.Odbc.OdbcConnection conn;

//Create connection to CSV file
conn = new System.Data.Odbc.OdbcConnection(strConnString.Trim ());

// For creating a connection using DSN, use following line
//conn = new System.Data.Odbc.OdbcConnection(DSN="MyDSN");

//Open the connection
conn.Open();
//Fetch records from CSV
sql_select = "select * from ["+ filetable +"]";

obj_oledb_da = new
System.Data.Odbc.OdbcDataAdapter(sql_select,conn);
//Fill dataset with the records from CSV file
obj_oledb_da.Fill(ds,"Stocks");
ds.Tables["Stocks"].Columns.Add("Name");

ds.Tables["Stocks"].Columns.Add("Description");
ds.Tables["Stocks"].Columns.Add("CUSIP");
ds.Tables["Stocks"].Columns.Add("SEDOL1");
ds.Tables["Stocks"].Columns.Add("ISIN");

//Set the datagrid properties

dGridCSVdata.DataSource=ds;
dGridCSVdata.DataMember="Stocks";

//Close Connection to CSV file
conn.Close();
}
catch(Exception e) //Error
{
MessageBox.Show(e.Message);
}
return ds;
}


Robson,

How would I do that?

JMO

Robson Siqueira wrote:

JMO,

Isn''t easier for you to import everything and then remove the 1st three
rows?

--
Regards,
Robson Siqueira
Enterprise Architect
"JMO" <j.**********@gmail.comwrote in message
news:11**********************@38g2000cwa.googlegro ups.com...

I can import a csv file with no problem. I can also add columns to the
datagrid upon import. I want to be able to start importing at the 3rd
row. This will pick up the headers necessary for the datagrid. Once I
can get to that point I need some way to be able to add new data only
to the new columns that were added.

Here is some of my code:

//Function For Importing Data From CSV File
public DataSet ConnectCSV(string filetable)
{
DataSet ds = new DataSet();
try
{
// You can get connected to driver either by using DSN or
connection string

// Create a connection string as below, if you want to use DSN
less connection. The DBQ attribute sets the path of directory which
contains CSV files

string strConnString="Driver={Microsoft Text Driver (*.txt;
*.csv)};Dbq="+txtCSVFolderPath.Text.Trim()+";Exten sions=asc,csv,tab,txt;Persist
Security Info=False";
string sql_select;
System.Data.Odbc.OdbcConnection conn;

//Create connection to CSV file
conn = new System.Data.Odbc.OdbcConnection(strConnString.Trim ());

// For creating a connection using DSN, use following line
//conn = new System.Data.Odbc.OdbcConnection(DSN="MyDSN");

//Open the connection
conn.Open();
//Fetch records from CSV
sql_select = "select * from ["+ filetable +"]";

obj_oledb_da = new
System.Data.Odbc.OdbcDataAdapter(sql_select,conn);
//Fill dataset with the records from CSV file
obj_oledb_da.Fill(ds,"Stocks");
ds.Tables["Stocks"].Columns.Add("Name");

ds.Tables["Stocks"].Columns.Add("Description");
ds.Tables["Stocks"].Columns.Add("CUSIP");
ds.Tables["Stocks"].Columns.Add("SEDOL1");
ds.Tables["Stocks"].Columns.Add("ISIN");

//Set the datagrid properties

dGridCSVdata.DataSource=ds;
dGridCSVdata.DataMember="Stocks";

//Close Connection to CSV file
conn.Close();
}
catch(Exception e) //Error
{
MessageBox.Show(e.Message);
}
return ds;
}


这篇关于将csv导入datagrid,添加列数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆