I want to make it user friendily. I want to use window forms and select
files. Is this possible. But after selecting tab delimeted file what should
I do.
Open the file as a StreamReader, read it line after line. For each line
read, split it ( string[] arrParams = strLine.Split( new char[] {
'\t' } ) ). Then create a SQL Insert statement with parameters and execute
it using SqlCommand object:
1: SqlCommand cmd = new SqlCommand( "insert into table1( field1, field2 )
values( @field1, @field2 )", connection );
2: cmd.Parameters.Add( new SqlParameter( "@field1", arrParams[0] );
3: cmd.Parameters.Add( new SqlParameter( "@field2", arrParams[1] );
4: cmd.ExecuteNonQuery();
For each next line of text, lines 2 and 3 of the sample will change to:
cmd.Parameters["@field1"].Value = arrParams[0];
cmd.Parameters["@field2"].Value = arrParams[1];
>I want to make it user friendily. I want to use window forms and select
> files. Is this possible. But after selecting tab delimeted file what
[quoted text clipped - 22 lines]
>> > do
>> > that.
Nicholas Paldino [.NET/C# MVP] - 07 Nov 2007 22:23 GMT
That's a VERY, VERY roundabout way. The bulk importer is a much, much
better option.
If there is a need to manipulate the data, an easy (and faster) way to
do it in SQL Server would be to have a stored procedure which will create
the temporary table, and then use the bulk importer to import into the
temporary table (you can create a string to execute the bulk importer and
pass it to sp_executesql). Once the data is imported into the temporary
table, you can issue queries to manipulate the data, and then insert it from
the temp table into the destination table.

Signature
- Nicholas Paldino [.NET/C# MVP]
- mvp@spam.guard.caspershouse.com
> Open the file as a StreamReader, read it line after line. For each line
> read, split it ( string[] arrParams = strLine.Split( new char[] {
[quoted text clipped - 38 lines]
>>> > do
>>> > that.
Ashot Geodakov - 07 Nov 2007 23:15 GMT
Well, I agree these methods are faster. Especially when it's presumed that
all data in the flat file are valid, types all match, etc.
> That's a VERY, VERY roundabout way. The bulk importer is a much, much
> better option.
[quoted text clipped - 49 lines]
>>>> > do
>>>> > that.
Andrew Faust - 08 Nov 2007 02:04 GMT
You can set options on SqlBulkCopy to make sure all these are checked.
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopyoption
s.aspx

Signature
Andrew Faust
andrew[at]andrewfaust.com
http://www.andrewfaust.com
> Well, I agree these methods are faster. Especially when it's presumed
> that all data in the flat file are valid, types all match, etc.
[quoted text clipped - 53 lines]
>>>>> > I do
>>>>> > that.
Ignacio Machin ( .NET/ C# MVP ) - 08 Nov 2007 16:35 GMT
Hi,
That would be the last resource. Bulk cp is the best way to go.

Signature
Ignacio Machin
http://www.laceupsolutions.com
Mobile & warehouse Solutions.
> Open the file as a StreamReader, read it line after line. For each line
> read, split it ( string[] arrParams = strLine.Split( new char[] {
[quoted text clipped - 38 lines]
>>> > do
>>> > that.