黑马程序员_Windows窗体应用程序中数据导入数据库
来源:互联网 发布:怎么查自己网贷大数据 编辑:程序博客网 时间:2024/06/03 09:04
if (ofdimport.ShowDialog() != DialogResult.OK) { return; } using (FileStream filestream = File.OpenRead(ofdimport.FileName)) { using (StreamReader streamReader = new StreamReader(filestream)) { using (SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=true;User Instance=true")) //创建连接是非常耗时的,因此尽量不要每次操作都创建连接 { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "insert into T_Persons(name,age) values(@name,@age)"; string line = null; while ((line = streamReader.ReadLine()) != null) { string[] strs = line.Split('|'); string name = strs[0]; int age = Convert.ToInt32(strs[1]); cmd.Parameters.Clear(); //参数不能重复添加,在while中一直用的就是一个sqlcommand cmd.Parameters.Add(new SqlParameter("Name", name)); cmd.Parameters.Add(new SqlParameter("age", age)); cmd.ExecuteNonQuery(); } } } } } MessageBox.Show("导入成功"); /*//建议采取上面的方面,此方法比较耗时 if (ofdimport.ShowDialog() == DialogResult.OK) { using(FileStream filestream=File.OpenRead(ofdimport.FileName)) { using (StreamReader streamReader = new StreamReader(filestream)) { string line = null; while ((line = streamReader.ReadLine()) != null) { string[] strs = line.Split('|'); string name = strs[0]; int age = Convert.ToInt32(strs[1]); using (SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=true;User Instance=false")) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "insert into T_Persons(name,age) values(@name,@age)"; cmd.Parameters.Add(new SqlParameter("Name", name)); cmd.Parameters.Add(new SqlParameter("age", age)); cmd.ExecuteNonQuery(); } } } } } MessageBox.Show("导入成功"); }*/