if (ofdinport.ShowDialog() != DialogResult.OK)
{
return;
}
using (FileStream filestream = File.OpenRead(ofdinport.FileName))
{
using (StreamReader streamreader = new StreamReader(filestream))
//创建连接数据库是很耗时的,因此不要每次操作都创建连接
{
using (SqlConnection coon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\C#程序\第二阶段\第二阶段\数据导入导出\drdc.mdf;Integrated Security=True"))
{
coon.Open();
using (SqlCommand cmd = coon.CreateCommand())
{
cmd.CommandText = "insert into Persson(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中一直用的是一个sqlconmmand 对象
cmd.Parameters.Add(new SqlParameter("Name", name));
cmd.Parameters.Add(new SqlParameter("Age", age));
cmd.ExecuteNonQuery();
}
}
}
}
}
MessageBox.Show("导入成功");
作者: 戴鑫凯 时间: 2013-2-21 17:19
if (ofdinport.ShowDialog() != DialogResult.OK)
{
return;
}
using (FileStream filestream = File.OpenRead(ofdinport.FileName))
{
using (StreamReader streamreader = new StreamReader(filestream))
//创建连接数据库是很耗时的,因此不要每次操作都创建连接
{
//创建连接通道,与数据库通信
using (SqlConnection coon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\C#程序\第二阶段\第二阶段\数据导入导出\drdc.mdf;Integrated Security=True"))
{
//连接数据库
coon.Open();
//创建数据库操作对象cmd
using (SqlCommand cmd = coon.CreateCommand())
{
//指定sql语句
cmd.CommandText = "insert into Persson(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]);
//防止sql注入攻击,使用参数化
//防止每次循环参数被标记占用,先清空一下
cmd.Parameters.Clear();//参数不能重复添加,在while中一直用的是一个sqlconmmand 对象
//添加参数
cmd.Parameters.Add(new SqlParameter("Name", name));
cmd.Parameters.Add(new SqlParameter("Age", age));
//开始执行非查询语句
cmd.ExecuteNonQuery();
}
}
}
}
}
MessageBox.Show("导入成功");
作者: 戴鑫凯 时间: 2013-2-21 17:20
pokemon 发表于 2013-2-21 17:19
if (ofdinport.ShowDialog() != DialogResult.OK)
{
return;
不知道楼主是否能看明白小弟写的注释作者: 彭清贵 时间: 2013-2-21 23:44
pokemon 发表于 2013-2-21 17:20
不知道楼主是否能看明白小弟写的注释
if (ofdinport.ShowDialog() != DialogResult.OK)
{
return;
}
using (FileStream filestream = File.OpenRead(ofdinport.FileName))
{
using (StreamReader streamreader = new StreamReader(filestream))
这个 了 我其实要的是这个
下面的好理解
老师也没说这个是干嘛的 就打出来了作者: 戴鑫凯 时间: 2013-2-22 11:00
if (ofdinport.ShowDialog() != DialogResult.OK) //判断是否是点了确定按扭,如果不是,就不执行后面的代码
{
return;
}
//读文件。。。。。。。。
using (FileStream filestream = File.OpenRead(ofdinport.FileName))
{
using (StreamReader streamreader = new StreamReader(filestream))
作者: 黑马宋兴征 时间: 2013-2-22 11:05
彭清贵 发表于 2013-2-21 23:44
if (ofdinport.ShowDialog() != DialogResult.OK)
{
return;
if (ofdinport.ShowDialog() != DialogResult.OK)
{
//ShowDialog()方法就是弹出选择文件对话框,选择了文件后点确定
//如果没有选择文件(就是点了取消),则程序返回,不再向下执行
return;
}
using (FileStream filestream = File.OpenRead(ofdinport.FileName)) //ofdinport.FileName得到选择的路径下的文件名,你可以设个断点来看一下
{
using (StreamReader streamreader = new StreamReader(filestream)) //创建输入流对象的一种重载方式,然后就可以streamreader.ReadLine()读取文件每一行的数据了