ثبت اطلاعات توسط فایل excel در دیتابیس به زبان سی شارپ و ASP.NET

اطلاعات توسط فایل excel

همیشه اضافه کردن امکاناتی که برای کاربر مفید باشد میتواند سطح کیفیت پروژه که بار ها در برای آن صحبت کردیم بالا ببرد ! ثبت اطلاعات توسط فایل excel حال به چه صورت ، ما در این مقاله سعی میکنیم باهم به برسی این موضوع بپردازیم ، در کل شما میتواین توسط این مقاله و نمونه سورس کدی که براتون در نظر گرفتیم از طریق فایل excel داده های مورد نیاز را به دیتابیس SQL اضافه کنید ! کاری که ما در پروژه تحت ویندوز ایمپورت کردن اطلاعات از فایل excel انجام دادیم اما این بار به سراغ وب رفتیم و در ASP.NET این امکان را برای شما فراهم آوردیم.در ادامه همراه ما برای تکمیل کردن آموزش همراه باشید.

ابتدا یک دیتابیس در SQL سرور بسازید و کد زیر را در آن اجرا کنید تا جدول که میخواهیم را داشته باشیم.


CREATE TABLE [dbo].[Employee](  
    [id] [int] IDENTITY(1,1) NOT NULL,  
    [Name] [varchar](50) NULL,  
    [City] [varchar](50) NULL,  
    [Address] [varchar](50) NULL,  
    [Designation] [varchar](50) NULL,  
 CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED   
(  
    [id] ASC  
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]  
) ON [PRIMARY]

 

بسیار خوب نرم افزار excel را باز کنید و با نام فیلد هایی که داریم (در بانک اطلاعاتی ایجاد کردیم) داده هایی را به دلخواه ثبت کنید.

تمام این کارها را انجام دادید بریم سراغ ویژوال استدیو اجراش کنید و یک پروژه وب بسازید یک فرم به پروژه اضافه کنید !

این هم کد فرم فقط یک فایل آپلود و یک دکمه قرار دادیم


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  
   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
    <title>Article by Vithal Wadje</title>  
</head>  
<body bgcolor="blue">  
    <form id="form1" runat="server">  
    <div style="color: White;">  
        <h4>  
            Article for C#Corner  
        </h4>  
        <table>  
            <tr>  
                <td>  
                    Select File  
                </td>  
                <td>  
                    <asp:FileUpload ID="FileUpload1" runat="server" />  
                </td>  
                <td>  
                </td>  
                <td>  
                    <asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" />  
                </td>  
            </tr>  
        </table>  
    </div>  
    </form>  
</body>  
</html>

 

 

حال باید ما یک کد کانکشن برای متصل کردن OLEDB برای فایل اکسل بسازیم ، به حال کد فرمی که ساختید برید و متد زیر را اضافه کنید.


private void ExcelConn(string FilePath)
    {
   
        constr = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES;""", FilePath);
        Econ = new OleDbConnection(constr);
        
    }

 

خوب حالا باید به دیتابیس و جدولی که ساختیم متصل بشیم ـ متد زیر را به فرم ضافه کنید.


rivate void connection()  
    {  
        sqlconn = ConfigurationManager.ConnectionStrings["SqlCom"].ConnectionString;  
        con = new SqlConnection(sqlconn);  
       
    }

 

حال نیاز به یک متد داریم تا بتوانیم از داده های فایل اکسل بهره بگیریم و آنها را به دیتابیس ارسال کنیم.متد زیر این کار برای شما انجام میدهد :


private void InsertExcelRecords(string FilePath)
{
ExcelConn(FilePath);

Query = string.Format("Select [Name],[City],[Address],[Designation] FROM [{0}]", "Sheet1$");
OleDbCommand Ecom = new OleDbCommand(Query, Econ);
Econ.Open();

DataSet ds=new DataSet();
OleDbDataAdapter oda = new OleDbDataAdapter(Query, Econ);
Econ.Close();
oda.Fill(ds);
DataTable Exceldt = ds.Tables[0];
connection();
//creating object of SqlBulkCopy
SqlBulkCopy objbulk = new SqlBulkCopy(con);
//assigning Destination table name
objbulk.DestinationTableName = "Employee";
//Mapping Table column
objbulk.ColumnMappings.Add("Name", "Name");
objbulk.ColumnMappings.Add("City", "City");
objbulk.ColumnMappings.Add("Address", "Address");
objbulk.ColumnMappings.Add("Designation", "Designation");
//inserting Datatable Records to DataBase
con.Open();
objbulk.WriteToServer(Exceldt);
con.Close();
}

دقت کنید به اسم دیتابیس و فیلد های کد فوق که با جدول شما مطابقت داشته باشد.

اگر خاطرتون باشه ما یک دکمه برای آپلود فایل به پروژه اضافه کردیم روی ان دوبار کلیک کرده و کد زیر را قرار بدید !


string CurrentFilePath = Path.GetFullPath(FileUpload1.PostedFile.FileName);
InsertExcelRecords(CurrentFilePath);

 

محبوبه میرزائی

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

جشنواره فروش ویژه عید تا عید با تخفیف های باورنکردنی در ام اس پی سافتبزن بریم
+