.Net_把文件数据添加到数据库中(面试题)
一个文本文件含有如下内容:
4580616022644994|3000|赵涛
4580616022645017|6000|张屹
4580616022645090|3200|郑欣夏
上述文件每行为一个转账记录,第一列表示帐号,第二列表示金额,第三列表示开户人姓名。
创建一张数据库表(MS SQLServer数据库,表名和字段名自拟),请将上述文件逐条插入此表中。
1 static void Main(string[] args) 2 { 3 //把文件数据读取到数组中 4 string[] str=File.ReadAllLines(@"C:\Users\Administrator\Desktop\数据文件.txt",Encoding.Default); 5 //遍历数组 6 foreach (var s in str) 7 { 8 //分割字符串 9 string[] file= s.Split(new char[]{'|'}, StringSplitOptions.RemoveEmptyEntries); 10 //sql语句 11 string sql = "INSERT INTO dbo.test_2(number, moneys, name)VALUES(@number,@moneys,@name);"; 12 //sql参数 13 SqlParameter[] para = { 14 new SqlParameter("@number",SqlDbType.NVarChar), 15 new SqlParameter("@moneys",SqlDbType.Int), 16 new SqlParameter("@name",SqlDbType.NVarChar), 17 }; 18 para[0].Value = file[0]; 19 para[1].Value = Convert.ToInt32(file[1]); 20 para[2].Value = file[2]; 21 //数据库操作 22 using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=123")) 23 { 24 using (SqlCommand comm = new SqlCommand(sql,conn)) 25 { 26 if (para!=null) 27 { 28 comm.Parameters.AddRange(para); 29 } 30 if (conn.State==ConnectionState.Closed) 31 { 32 conn.Open(); 33 } 34 int i=comm.ExecuteNonQuery(); 35 if (i>0) 36 { 37 Console.WriteLine("插入成功"); 38 } 39 40 } 41 } 42 } 43 Console.ReadKey(); 44 }