Exemple #1
0
        public static void ImportDataFromExcel(string excelFilePath)
        {
            //declare variables - edit these based on your particular situation
            string sqlExcelTable = "ExcelDictionary";
            // make sure your sheet name is correct, here sheet name is sheet1, so you can change your sheet name if have different
            string excelLocalLanguageQuery = "select * from [Dictionary$]";

            try
            {
                //create our connection strings
                string excelConnectionString = @"provider=microsoft.jet.oledb.4.0;data source=" + excelFilePath +
                                               ";extended properties=" + "\"excel 8.0;hdr=yes;\"";

                string sqlConnectionString = ConfigurationManager.ConnectionStrings["IdentityDbContext"].ConnectionString;



                string createExcelTableQuery = "DROP TABLE " + sqlExcelTable + " \n" +
                                               "SET ANSI_NULLS ON \n" +
                                               "SET QUOTED_IDENTIFIER ON \n" +
                                               "CREATE TABLE " + sqlExcelTable + " ( \n" +
                                               "[Id][int] NULL, \n";

                var activeLanguage = new BLLanguage().GetActiveLanguages();
                foreach (var activeLang in activeLanguage)
                {
                    createExcelTableQuery += "[" + activeLang.CultureInfo + "]" + "[nvarchar](255) NULL, \n";
                }
                createExcelTableQuery += "[Orig]" + "[nvarchar](255) NULL, \n";

                createExcelTableQuery += ") ON[PRIMARY]";

                string sqlClrealQueries =
                    createExcelTableQuery + "\n" +
                    "delete " + sqlExcelTable + "\n" +
                    "delete[dbo].[Dictionary]" + "\n" +
                    "delete[dbo].[RefrenceWord]";

                SqlConnection sqlconn = new SqlConnection(sqlConnectionString);
                SqlCommand    sqlcmd  = new SqlCommand(sqlClrealQueries, sqlconn);
                sqlconn.Open();
                sqlcmd.ExecuteNonQuery();
                sqlconn.Close();

                OleDbConnection oledbconn = new OleDbConnection(excelConnectionString);

                DataTable dtExcelData = new DataTable();

                using (OleDbDataAdapter oda = new OleDbDataAdapter(excelLocalLanguageQuery, oledbconn))
                {
                    oda.Fill(dtExcelData);
                }

                oledbconn.Close();

                using (SqlConnection con = new SqlConnection(sqlConnectionString))
                {
                    using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(con))
                    {
                        //Set the database table name
                        sqlBulkCopy.DestinationTableName = sqlExcelTable;

                        sqlBulkCopy.ColumnMappings.Add("Id", "Id");
                        sqlBulkCopy.ColumnMappings.Add("Orig", "Orig");

                        foreach (var activeLang in activeLanguage)
                        {
                            sqlBulkCopy.ColumnMappings.Add(activeLang.CultureInfo, activeLang.CultureInfo);
                        }

                        con.Open();
                        sqlBulkCopy.WriteToServer(dtExcelData);
                        con.Close();
                    }
                }

                string sqlFillDictionaryQueries =
                    "insert [dbo].[RefrenceWord] (Id, Word) select Id, [Orig] from " + sqlExcelTable + "\n";

                foreach (var activeLang in activeLanguage)
                {
                    sqlFillDictionaryQueries +=
                        "insert [dbo].[Dictionary] (CultureInfoCode, RefrenceWordId, Value) select '" + activeLang.CultureInfo + "', Id, [" + activeLang.CultureInfo + "] from " + sqlExcelTable + "\n";
                }

                sqlconn = new SqlConnection(sqlConnectionString);
                sqlcmd  = new SqlCommand(sqlFillDictionaryQueries, sqlconn);
                sqlconn.Open();
                sqlcmd.ExecuteNonQuery();
                sqlconn.Close();
            }
            catch
            {
                //handle exception
            }
        }
Exemple #2
0
        public static Dictionary <string, string> LoadLanguage(string cultureInfoCode)
        {
            var blLanguage = new BLLanguage();

            return(blLanguage.GetDictionary(cultureInfoCode));
        }