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

ثبت اطلاعات توسط فایل 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);

 

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

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

دیدگاه‌ها

*
*

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