日期:2014-05-18 浏览次数:21231 次
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; using System.Threading; using System.IO; using System.Data.SqlClient; namespace 多线程综合 { public partial class Form1 : Form { public Form1() { InitializeComponent(); //Control.CheckForIllegalCrossThreadCalls = false; } int index; string tb1name; string str; DataTable dt; SqlBulkCopy sbc; SqlTransaction sqltran; SqlConnectionStringBuilder sqlconnsb = new SqlConnectionStringBuilder(); SqlConnection conn; public ManualResetEvent mre = new ManualResetEvent(false); //public ManualResetEvent mre2 = new ManualResetEvent(false); private void button1_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Title = "请选择文件"; ofd.CheckFileExists = true; ofd.Filter = "All Files|*.*"; ofd.Multiselect = false; if (ofd.ShowDialog() == DialogResult.OK) { textBox1.Text = ofd.FileName; index = this.textBox1.Text.LastIndexOf("\\"); tb1name = textBox1.Text; } else { return; } } public void traversal() { Console.WriteLine("process in traversal"); SqlDataAdapter sda = new SqlDataAdapter(); int loop = 0; string filename; string packagequeue; string jlfsrq; DataSet ds = new DataSet("details"); DataRow dr; string srtxt; string[] Myfolder = Directory.GetFiles(tb1name.Substring(0, index), "FH*A"); using (SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=InsertTest;Integrated Security=True")) { for (int i = loop; i < Myfolder.Length; i++) { FileInfo fi = new FileInfo(Myfolder[i]); if (fi.FullName == tb1name) { loop = i + 1; str = "select * from details"; sda = new SqlDataAdapter(str, conn); sda.FillSchema(ds, SchemaType.Mapped, "details"); dt = ds.Tables[0].Clone();//复制表结构 ds.Dispose(); filename = this.textBox1.Text.Substring(index + 1, tb1name.Length - index - 1); jlfsrq = "20" + filename.Substring(2, 6).Trim(); packagequeue = filename.Substring(21, 3).Trim(); using (StreamReader sr = new StreamReader(textBox1.Text)) { int a = 0; while (!sr.EndOfStream) { srtxt = sr.ReadLine().Trim(); if (a > 0) { dr = dt.NewRow(); dr["hh"] = Convert.ToInt32(srtxt.Substring(11, 8)); //Console.WriteLine(Convert.ToInt32(srtxt.Substring(11, 8))); dr["stationid"] = srtxt.Substring(21, 6); //Console.WriteLine(srtxt.Substring(21, 6)); dr["sskh"] = srtxt.Substring(35, 8); dt.Rows.Add(dr); } a++; }