/// Data from text file
/// Implementation
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.IO;
using System.Data.SqlClient;
/// <summary>
/// Summary description for Class1
/// </summary>
public class Class1
{
/// <summary>
///Table feilds as in the
table in Database
/// </summary>
enum TableFeilds
{
ID,
FName,
LName,
Age,
Address,
}
/// <summary>
///Parcing data from file
/// </summary>
public DataTable
CreateDataTableFromData(StreamReader
strReader)
{
string sRdrLine = String.Empty;
DataTable dt = new
DataTable("TableName");
//Table Name should be the same as in the DataBase
try
{
foreach (String
strEnumsValues in Enum.GetNames(typeof(TableFeilds)))
{
dt.Columns.Add(strEnumsValues);
}
while (!strReader.EndOfStream)
{
sRdrLine = strReader.ReadLine();
DataRow row = dt.NewRow();
if (sRdrLine.Trim() != string.Empty)
{
if (sRdrLine.Split('|').GetValue(0).ToString().Trim().Length > 0)
row["ID"] = sRdrLine.Split('|').GetValue(0).ToString();
else
row["ID"] = DBNull.Value;
if (sRdrLine.Split('|').GetValue(1).ToString().Trim().Length > 0)
row["FName"] = sRdrLine.Split('|').GetValue(1).ToString();
else
row["FName"] = DBNull.Value;
if (sRdrLine.Split('|').GetValue(2).ToString().Trim().Length > 0)
row["LName"] = sRdrLine.Split('|').GetValue(2).ToString();
else
row["LName"] = DBNull.Value;
if (sRdrLine.Split('|').GetValue(3).ToString().Trim().Length > 0)
row["Age"] = sRdrLine.Split('|').GetValue(3).ToString();
else
row["Age"] = DBNull.Value;
if (sRdrLine.Split('|').GetValue(4).ToString().Trim().Length > 0)
row["Address"] = sRdrLine.Split('|').GetValue(4).ToString();
else
row["Address"] = DBNull.Value;
dt.Rows.Add(row);
sRdrLine = null;
}
}
}
catch (Exception
ex)
{
throw ex;
}
return
dt;
}
/// <summary>
///Inserting Data into data
base
/// </summary>
public bool
InsertDataViaSqlBulkCopy(DataTable dt, string strStoreProcedure)
{
string mySqlConnectionString = ""; //Your DB
SonnectionString here...
bool isDone = false;
SqlConnection conn = null;
SqlTransaction trans = null;
SqlCommand cmd = null;
try
{
conn = new SqlConnection(mySqlConnectionString);
conn.Open();
trans = conn.BeginTransaction();
cmd = new SqlCommand(strStoreProcedure,
conn);
cmd.CommandTimeout = 550;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Transaction = trans;
cmd.ExecuteNonQuery();
using (SqlBulkCopy
objbulkCopy = new SqlBulkCopy(conn,
SqlBulkCopyOptions.KeepIdentity, trans))
{
objbulkCopy.BulkCopyTimeout = 550;
foreach (DataColumn
dtColumn in dt.Columns)
{
objbulkCopy.ColumnMappings.Add(dtColumn.ColumnName,
dtColumn.ColumnName);
}
objbulkCopy.DestinationTableName = dt.TableName;
objbulkCopy.BatchSize = dt.Rows.Count;
objbulkCopy.WriteToServer(dt);
isDone = true;
}
trans.Commit();
conn.Close();
}
catch (Exception
ex)
{
if (trans != null)
{
trans.Rollback();
}
throw ex;
}
finally
{
if (conn != null)
{
conn.Dispose();
conn = null;
}
}
return isDone;
}
/// <summary>
/// Class1 constructor
/// </summary>
public Class1()
{
if (File.Exists("FilePath") == true)
{
using (StreamReader
strReaderSup = File.OpenText("FilePath"))
{
DataTable dt = CreateDataTableFromData(strReaderSup);
strReaderSup.Dispose();
if (dt.Rows.Count > 0)
{
InsertDataViaSqlBulkCopy(dt, "yourSPName");
}
}
}
}
}

No comments:
Post a Comment