A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭清贵 中级黑马   /  2013-2-21 17:04  /  1600 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在ADO.NET 视频中,视频的排序不对啊      我晕
导入那个我都没弄明白   老湿也没写注释  我把代码发下  
你们帮我注释下   


            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("导入成功");

5 个回复

正序浏览

回帖奖励 +5 黑马币

彭清贵 发表于 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()读取文件每一行的数据了

回复 使用道具 举报
if (ofdinport.ShowDialog() != DialogResult.OK)   //判断是否是点了确定按扭,如果不是,就不执行后面的代码
            {
                return;
            }
           //读文件。。。。。。。。
            using (FileStream filestream = File.OpenRead(ofdinport.FileName))
            {
                using (StreamReader streamreader = new StreamReader(filestream))

回复 使用道具 举报
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))



这个 了   我其实要的是这个  
下面的好理解   
老师也没说这个是干嘛的     就打出来了
回复 使用道具 举报
pokemon 发表于 2013-2-21 17:19
if (ofdinport.ShowDialog() != DialogResult.OK)
            {
                return;

不知道楼主是否能看明白小弟写的注释
回复 使用道具 举报
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("导入成功");      









回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马