Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Appending data from a text file
Message
From
25/01/2008 16:58:58
Cetin Basoz
Engineerica Inc.
Izmir, Turkey
 
 
To
25/01/2008 13:23:19
Jerry Tovar
Dana Corporation Dana It
Maumee, Ohio, United States
General information
Forum:
ASP.NET
Category:
Databases
Environment versions
Environment:
C# 2.0
Miscellaneous
Thread ID:
01285552
Message ID:
01285655
Views:
23
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Text;

class SDF2SQL
{
 static void Main()
 {
   CreateTextFile(@"c:\temp\mySDF.txt");
   SDF2Sql(@"c:\temp\mySDF.txt");
 }
 private static void SDF2Sql(string filename)
 {
   SqlConnection con = new SqlConnection(@"server=.\sqlexpress;trusted_connection=yes;");
   SqlCommand cmd = new SqlCommand();
   con.Open();
   cmd.Connection = con;
   cmd.CommandText = "create database SDFTest";
   cmd.ExecuteNonQuery();
   cmd.CommandText = @"create table SDFTest..test (
 [myDate] [Datetime] null,
 [first] [varchar](20),
 [last] [varchar](20),
 [amount] [money] )";
   cmd.ExecuteNonQuery();

   cmd.CommandText = @"insert into SDFTest..test
 ([myDate], [first], [last], [amount])
 values
 (@d,@f,@l,@a)";
   cmd.Parameters.Add("@d",SqlDbType.DateTime);
   cmd.Parameters.Add("@f",SqlDbType.VarChar);
   cmd.Parameters.Add("@l",SqlDbType.VarChar);
   cmd.Parameters.Add("@a",SqlDbType.Int);

   TextReader r = new StreamReader(filename);
   string line;
   DateTime dt;

   while ((line = r.ReadLine()) != null)
   {
     if (DateTime.TryParse(line.Substring(0,9),out dt))
        cmd.Parameters["@d"].Value = dt;
     else
        cmd.Parameters["@d"].Value = DBNull.Value;
     cmd.Parameters["@f"].Value = line.Substring(10,20);
     cmd.Parameters["@l"].Value = line.Substring(30,20);
     cmd.Parameters["@a"].Value = Int32.Parse( line.Substring(50,10) );
     cmd.ExecuteNonQuery();
   }
   r.Close();
   con.Close();
 } 
 
 private static void CreateTextFile(string filename)
 {
   TextWriter w = new StreamWriter(filename);
   Random r = new Random();
   for (int i=0;i<20;i++)
   {
   w.WriteLine("{0,-10}{1,-20}{2,-20}{3,10}",
      "2007/"+r.Next(1,12).ToString()+"/"+r.Next(1,28).ToString(),
      "FirstName #"+i.ToString(),
      "LastName #"+i.ToString(),
      r.Next(1000));
   }
   w.Close();
 }
}
PS: Instead of sending multiple commands I'd use a DataTable instead. This is just for sampling.
Cetin
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Previous
Reply
Map
View

Click here to load this message in the networking platform