当前位置:首页 > 主打产品 >

ADO.net之导入数据

作者:厦门七星音乐岛文化传播有限公司 发布时间:2017-09-03 12:48:43

ADO.net之导入数据

在学习完三层之后,专题系统,发现有很多欠缺的地方,于是找了一些资料进行补充,在看ado视频时在敲导入导出文件的代码时很是困惑,原因是对OpenFileDialog控件的方法还是不熟悉,首先给大家展示一个简单但写的很繁琐额程序:

private void btnInput_Click(object sender, EventArgs e) { if (ofdInput.ShowDialog()==DialogResult.OK )//是否导入文件并“打开”按钮 { using(FileStream filestream=File.OpenRead (ofdInput.FileName))//如果导入文件并按“打开”按钮,则将该文件内容写入filestream { using(StreamReader streamReader=new StreamReader(filestream ))//StreamReader是用来读filestream的 { string line = null;//命名变量line,默认为null值,用来一条条读取数据 while ((line=streamReader.ReadLine ())!=null)//一条条读数据 { string[] strs=line.Split ('|');//定义分割字段的符号“|” string name=strs[0];//每一条的第一个数为name int age=Convert.ToInt32(strs[1]);//第二个数为age,因为数据库中的Age为int类型,而这里有strs[]向age赋的是string类型,因此需要有一个转换的过程 using(SqlConnection conn=new SqlConnection ("server=.;database=IOdata;uid=sa;password=123456"))//创建数据库连接 { conn.Open();//打开连接 using (SqlCommand cmd=conn.CreateCommand ())//创建sql命令 cmd.CommandText = "Insert into T_Persons(Name,Age) values(@Name,@Age)";//插入数据 cmd.Parameters.Add(new SqlParameter ("Name",name) );//运用参数化给name赋值 cmd.Parameters.Add(new SqlParameter("Age", age)); cmd.ExecuteNonQuery(); } 在上面的程序中就知道filestream是用来写入用户要打开的文件的,而streamreader是用来将文件的内容读出来,在连接数据库之后进行将从文件读出的内容insert into 数据库,就实现的程序的导入,但是有个问题就是这本来是个很简单的过程,但是这里用了连接数据库,而这个过程是很费事的,所以我们可以简化,重用sqlcommand,下面进行一下简化。

private void btnInput_Click(object sender, EventArgs e) { if (ofdInput.ShowDialog() !=DialogResult.OK )//如果不按打开按钮 return ; using (FileStream filestream = File.OpenRead(ofdInput.FileName))//如果导入文件并按“打开”按钮,则将该文件内容写入filestream { using (StreamReader streamReader = new StreamReader(filestream))//StreamReader是用来读filestream的 { using (SqlConnection conn = new SqlConnection("server=.;database=IOdata;uid=sa;password=123456"))//创建数据库连接 { conn.Open();//打开连接 using (SqlCommand cmd = conn.CreateCommand())//创建sql命令 { cmd.CommandText = "Insert into T_Persons(Name,Age) values(@Name,@Age)";//插入数据 string line = null;//命名变量line,默认为null值,用来一条条读取数据 while ((line = streamReader.ReadLine()) != null)//一条条读数据 ” string name = strs[0];//每一条的第一个数为name int age = Convert.ToInt32(strs[1]);//第二个数为age,因为数据库中的Age为int类型,而这里有strs[]向age赋的是string类型,因此需要有一个转换的过程 cmd.Parameters.Clear(); cmd.Parameters.Add(new SqlParameter("Name", name));//运用参数化给name赋值 cmd.Parameters.Add(new SqlParameter("Age", age)); cmd.ExecuteNonQuery(); } } } } MessageBox.Show("导入成功"); 和上段代码比较,虽然改动不大,但是对一个大的程序来说很有用的,如果反复打开、关闭数据库是非常耗时的,而用户是绝对没有这个耐心的,他们需要的是越快越好,所以和上次考试系统的师哥师姐的讲解内容接轨了,大数据问题……



企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:神农架SEO http://shennongjia.raoyu.net

  • 上一篇:SEO策略之道法自然
  • 下一篇:最后一页
  • 

    COPYRIGHT © 2015 厦门七星音乐岛文化传播有限公司 ALL RIGHTS RESERVED.

    本站所有原创信息,未经许可请勿任意转载或复制使用

    网站地图 技术支持:肥猫科技
    精彩专题:网站建设
    购买本站友情链接、项目合作请联系客服QQ:2500-38-100