Пример #1
0
        private void buttonImport_Click(object sender, EventArgs e)
        {
            DialogResult result;
            string       str = Microsoft.VisualBasic.Interaction.InputBox("部署マスタを新規に作成する場合は「1」\r\n" +
                                                                          "部署マスタにデータを追加する場合は「2」\r\n" +
                                                                          "部署マスタへの追加をキャンセルする場合は「3」\r\n" +
                                                                          "を入力してください", "部署マスタデータ追加確認", "3", -1, -1);

            //入力データのチェック
            if (str != "1" && str != "2" && str != "3")
            {
                //エラーメッセージ表示
                result = msg.MsgDsp("M10011");
                return;
            }
            if (str == "3")
            {
                return;
            }
            try
            {
                if (str == "1")
                {
                    var context = new SalesContext();
                    //M_Divisionテーブルを再作成
                    context.Database.ExecuteSqlCommand("TRUNCATE TABLE M_Division; ");
                    context.SaveChanges();
                }
                //インポートするCSVファイルの指定
                string csvpth = System.Environment.CurrentDirectory + "\\Division.csv";
                //データテーブルの設定
                DataTable dt = new DataTable();
                dt.TableName = "M_Division";

                //csvファイルの内容をDataTableへ
                //csvファイル及び、デリミタの指定
                var parser = new Microsoft.VisualBasic.FileIO.TextFieldParser(csvpth, Encoding.GetEncoding("Shift-JIS"))
                {
                    TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited,
                    Delimiters    = new string[] { "," }
                };
                // 全行読み込み
                var rows = new List <string[]>();
                while (!parser.EndOfData)
                {
                    rows.Add(parser.ReadFields());
                }
                // 列設定
                dt.Columns.AddRange(rows.First().Select(s => new DataColumn(s)).ToArray());
                // 行追加
                foreach (var row in rows.Skip(1))
                {
                    dt.Rows.Add(row);
                }

                //DB接続情報の取得
                var dbpth = System.Configuration.ConfigurationManager.ConnectionStrings["SalesContext"].ConnectionString;
                //DataTableの内容をDBへ追加
                using (var bulkCopy = new SqlBulkCopy(dbpth))
                {
                    bulkCopy.DestinationTableName = dt.TableName;
                    bulkCopy.WriteToServer(dt);
                }
                //データグリッドに全データ表示
                fncAllSelect();
                //完了メッセージの表示
                result = msg.MsgDsp("M10007");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }