从文本文件中往数据库中导入数据_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 从文本文件中往数据库中导入数据

从文本文件中往数据库中导入数据

 2013/11/13 20:50:04  搞IT的蟋蟀  博客园  我要评论(0)
  • 摘要:1{90#endregion91#region数据导入92stringconstr="datasource=.;initialcatalog=itcast2013;integratedsecurity=true";93using(StreamReadersr=newStreamReader(@"f:\person.txt"))94{95using(SqlConnectioncon=newSqlConnection(constr))96
  • 标签:文件 数据库 数据 导入数据

 

  1 {
 90             #endregion
 91             #region 数据导入
 92             string constr = "data source=.;initial catalog=itcast2013;integrated security=true";
 93             using (StreamReader sr = new StreamReader(@"f:\person.txt"))
 94             {
 95                 using (SqlConnection con = new SqlConnection(constr))
 96                 {
 97                     string sqlstr = "insert into tblperson values(@uname,@uage,@uheight)";
 98                     using (SqlCommand cmd = new SqlCommand(sqlstr, con))
 99                     {
100                         //使用带参数的sql语句时,不要把增加参数的代码写在循环中...否则就重复增加参数啦
101                         //解决思路:先声明参数对象,不赋值,在循环里再赋值.如下
102                         SqlParameter[] spt = new SqlParameter[]
103                    {
104                    new SqlParameter("@uname",System.Data.SqlDbType.NVarChar,50),
105                    new SqlParameter ("@uage",System.Data.SqlDbType.Int),
106                    new SqlParameter("@uheight",System.Data.SqlDbType.Int)
107                    };
108                         //添加参数
109                         cmd.Parameters.AddRange(spt);
110 
111                         string line = sr.ReadLine();
112                         con.Open();
113                         while ((line = sr.ReadLine()) != null)
114                         {
115                             string[] parts = line.Split(',');
116                             //Console.WriteLine("{0}, {1}, {2} ,{3}",parts[0],parts[1],parts[2],parts[3]);
117                             string uname = parts[1];
118                             int uage = parts[2].Length > 0 ? Convert.ToInt32(parts[2]) : -1;
119                             int uheight = parts[3].Length > 0 ? Convert.ToInt32(parts[3]) : -1;
120                             //给参数赋值
121                             spt[0].Value = uname;
122                             spt[1].Value = uage == -1 ? DBNull.Value : (object)uage;
123                             spt[2].Value = uheight == -1 ? DBNull.Value : (object)uheight;
124                             cmd.ExecuteNonQuery();
125 
126                             //如果想要在循环中增加参数,需要每次执行完毕之后再清空一下
127                             //cmd.Parameters.Clear();
128                         }
129 
130                     }
131                 }
132             }
133             #endregion
134             Console.ReadKey();
135         }

 

 

 

发表评论
用户名: 匿名