using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Project._Management { public partial class fImpEquipment : Form { public fImpEquipment() { InitializeComponent(); } private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { OpenFileDialog od = new OpenFileDialog(); od.Filter = "csv|*.csv|excel|*.xls|all files|*.*"; od.FilterIndex = 1; od.RestoreDirectory = true; if (od.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; textBox1.Text = od.FileName; } private string[] getCSVFormat(string line) { List datas = new List(); var charlist = line.ToCharArray(); int c = 0; System.Text.StringBuilder sb = new StringBuilder(); Boolean findCom = false; foreach(var ch in charlist) { if(ch == '"') { if (findCom == false) findCom = true; else findCom = false; } else if (ch == ',') { if(findCom) { sb.Append(ch); } else { datas.Add(sb.ToString()); sb.Clear(); findCom = false; } } else sb.Append(ch); } return datas.ToArray(); } System.Data.DataTable dt = new DataTable(); private void button1_Click(object sender, EventArgs e) { //데이터를 모두 읽어서 처리한다. //엑셀파일을 읽어서 처리한다. if(textBox1.Text.EndsWith("CSV")) { var lines = System.IO.File.ReadAllLines(textBox1.Text, System.Text.Encoding.Default); int rowNum = 0; foreach(var line in lines) { var buf = getCSVFormat(line);//.Split(','); if(rowNum == 0) { foreach(var colname in buf) { dt.Columns.Add(colname); } } else { var newdr = dt.NewRow(); for(int c=0; c< buf.Length;c++) { if(c < dt.Columns.Count) newdr[c] = buf[c]; } dt.Rows.Add(newdr); } rowNum += 1; } } else { libxl.Book book;// = new libxl.BinBook(); if (textBox1.Text.EndsWith("xlsx")) book = new libxl.XmlBook(); else book = new libxl.BinBook(); book.load(textBox1.Text); var sheet = book.getSheet(0); for (int r = sheet.firstRow(); r <= sheet.lastRow(); r++) { for (int c = sheet.firstCol(); c <= sheet.lastCol(); c++) { var strVallue = sheet.readStr(r, c); // //var numValue = sheet.readNum(r, c); if (r == 0) { //column row dt.Columns.Add(strVallue); } } } // book = null; } this.dataGridView1.DataSource = dt; } private void button2_Click(object sender, EventArgs e) { dsMSSQLTableAdapters.LineCodeTableAdapter ta = new dsMSSQLTableAdapters.LineCodeTableAdapter(); var lineTd = ta.GetData(); lineTd.AcceptChanges(); //12,13 foreach(DataRow dr in dt.Rows) { var linecode = dr[12].ToString(); var linedesc = dr[13].ToString(); var codeDrows = lineTd.Select("code='" + linecode + "'"); if(codeDrows.Length == 0) { var newdr = lineTd.NewLineCodeRow(); newdr.code = linecode; newdr.memo = linedesc; var linebuf = linedesc.Split('-'); if (linebuf.Length > 1) { newdr.team = linebuf[0]; newdr.part = linebuf[1]; } else { newdr.team = linedesc; } newdr.wuid = Pub.Login.no; newdr.wdate = DateTime.Now; lineTd.AddLineCodeRow(newdr); } } ta.Update(lineTd); lineTd.AcceptChanges(); Util.MsgE("test"); } private void button3_Click(object sender, EventArgs e) { dsMSSQLTableAdapters.EquipmentTableAdapter ta = new dsMSSQLTableAdapters.EquipmentTableAdapter(); var lineTd = ta.GetData(); lineTd.AcceptChanges(); //12,13 foreach (DataRow dr in dt.Rows) { var linecode = dr[12].ToString(); var linedesc = dr[13].ToString(); var codeDrows = lineTd.Select("asset='" + dr[6].ToString() + "' and serial = '"+ dr[7].ToString() +"'"); if (codeDrows.Length == 0) { var newdr = lineTd.NewEquipmentRow(); newdr.pdate = DateTime.Now.ToShortDateString(); newdr.asset = dr[6].ToString(); newdr.grp = dr[0].ToString(); newdr.type = dr[2].ToString(); newdr.model = dr[3].ToString(); newdr.linecode = linecode; newdr.serial = dr[7].ToString(); newdr.manu = dr[9].ToString(); newdr.primary = true; newdr.wuid = Pub.Login.no; newdr.wdate = DateTime.Now; lineTd.AddEquipmentRow(newdr); } } ta.Update(lineTd); lineTd.AcceptChanges(); Util.MsgE("test"); } } }