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("导入成功");
}*/
黑马程序员_Windows窗体应用程序中数据导入数据库
最新推荐文章于 2015-11-27 16:24:00 发布