Importing Text File data into SQL Server database using Asp.Net(C#)
Here is code i implemented to import text file data into SQL server database .
.aspx page
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ImportTEXT.aspx.cs" Inherits="ImportTEXT" Title="Import" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table align="center" width="80%" class="tableStyle">
<caption>
<br />
<tr>
<td align="center" colspan="2">
<asp:Label ID="lblHeader" runat="server" CssClass="lblHeader"
Text="Import"> </asp:Label>
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Label ID="lblError" runat="server" CssClass="lblText" ForeColor="Red">
</asp:Label>
</td>
</tr>
<tr>
<td align="right" width="40%">
<asp:Label ID="lblDes" runat="server" CssClass="lblText" Text="Upload TEXT File :"></asp:Label>
</td>
<td>
<asp:FileUpload ID="fuTextfile" runat="server" />
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td align="center" colspan="4">
<asp:Button ID="btnSave" runat="server" CssClass="buttonStyle" Text="Save"
onclick="btnSave_Click" />
</td>
</tr>
</caption>
</table>
</asp:Content>
----------------------------------------------------------------------------------------------
code .cs file:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ImportTEXT.aspx.cs" Inherits="ImportTEXT" Title="Import" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table align="center" width="80%" class="tableStyle">
<caption>
<br />
<tr>
<td align="center" colspan="2">
<asp:Label ID="lblHeader" runat="server" CssClass="lblHeader"
Text="Import"> </asp:Label>
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Label ID="lblError" runat="server" CssClass="lblText" ForeColor="Red">
</asp:Label>
</td>
</tr>
<tr>
<td align="right" width="40%">
<asp:Label ID="lblDes" runat="server" CssClass="lblText" Text="Upload TEXT File :"></asp:Label>
</td>
<td>
<asp:FileUpload ID="fuTextfile" runat="server" />
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td align="center" colspan="4">
<asp:Button ID="btnSave" runat="server" CssClass="buttonStyle" Text="Save"
onclick="btnSave_Click" />
</td>
</tr>
</caption>
</table>
</asp:Content>
----------------------------------------------------------------------------------------------
code .cs file:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using System.Data.OleDb;
using System.Text;
using System.Data.SqlClient;
public partial class ImportTEXT : System.Web.UI.Page
{
Common objCommon = new Common();
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
try
{
if (fuTextfile.HasFile)
{
FileInfo fileinfo = new FileInfo(fuTextfile.PostedFile.FileName);
if (fileinfo.Name.Contains(".txt"))
{
string filename = fileinfo.Name.Replace(".txt", "").ToString();
string csvfilepath = ((Server.MapPath("Upload") + "\\") + fileinfo.Name);
fuTextfile.SaveAs(csvfilepath);
string filepath = (Server.MapPath("Upload") + "\\");
string strsql = (("SELECT * FROM [" + fileinfo.Name) + "]");
string strCSVConnstring = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + (filepath + (";" + "Extended Properties=\'text;HDR=YES;\'")));
OleDbDataAdapter da = new OleDbDataAdapter(strsql, strCSVConnstring);
DataTable dtCSV = new DataTable();
DataTable dtSchema = new DataTable();
da.FillSchema(dtCSV, SchemaType.Mapped);
da.Fill(dtCSV);
lblError.Text = dtCSV.Rows.Count.ToString();
if (dtCSV.Rows.Count > 0)
{
string fileFullPath = (filepath + fileinfo.Name);
LoadDataToDatabase(filename, fileFullPath, "|");
}
}
}
}
catch (Exception ex)
{
objCommon.LogException(ex.Message);
}
}
private void LoadDataToDatabase(string tableName, string fileFullPath, string delimeter)
{
string sqlQuery = String.Empty;
StringBuilder sb = new StringBuilder();
sb.AppendFormat(string.Format("BULK INSERT {0} ", "tblInventory"));
sb.AppendFormat(string.Format(" FROM \'{0}\'", fileFullPath));
sb.AppendFormat(string.Format((" WITH (FIRSTROW = 4, FIELDTERMINATOR = \'{0}\' , ROWTERMINATOR = \'" + ("\n" + "\' )")), delimeter));
sqlQuery = sb.ToString();
SqlConnection con = new SqlConnection(@"Data Source=GLOBAL5;Initial Catalog=dbPractice;Integrated Security=True; Connection Timeout=10000");
con.Open();
SqlCommand sqlCmd = new SqlCommand(sqlQuery, con);
sqlCmd.ExecuteNonQuery();
con.Close();
con.Open();
SqlCommand cmd=new SqlCommand("SELECT COUNT(*) FROM tblInventory ", con);
int i = Convert.ToInt32(cmd.ExecuteScalar());
lblError.Text = i.ToString();
lblError.Visible = true;
con.Close();
}
}
----------------------------------------------------------------------------------------------
And Text file contains :
MaterialNo | Material Description | Qty | Unit Value | Value
10230 | xyz..........! | 2.0 | 1500.35 | 3000.70
like this
Things to remember
- Database table should contain same number of columns.
- Datatype should be appropreate for column datatype according data contained text file.
So enjoy it.
--
--
Regards,
Gajanan
Comments
Post a Comment