ADO.NET基础实战 从文件读取数据插入到数据库
硬盘文件:
C#代码:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 string[] namefile = File.ReadAllLines(@"f:\student.txt");//读取硬盘文件 6 7 8 //存储SQL受影响行数的变量 9 int rowsnum=0; 10 //连接数据库 11 string sqlconstr = @"server=.\SQLEXPRESS;database=MyDataBase15_31;uid=sa;pwd=sa"; 12 SqlConnection sqlconn = new SqlConnection(sqlconstr); 13 //建议通道 准备执行Sql语句 14 string sqlcomstr = @"insert into student2 (sName,sAge,sGender,sClass) values('{0}','{1}','{2}','{3}')"; 15 SqlCommand sqlcom=new SqlCommand(); 16 using (sqlconn) 17 { 18 using (sqlcom) 19 { 20 for (int i = 0; i < namefile.Length; i++) 21 { 22 //分割每条记录,以字段为单位存入数组linedata[] 23 //1 24 string[] linedata = namefile[i].Split(new char[]{'\t'}, StringSplitOptions.RemoveEmptyEntries); 25 sqlcom.CommandText = string.Format(sqlcomstr, linedata[1], linedata[2], linedata[3], linedata[4]);//连接数据库,执行语句 26 27 sqlcom.Connection = sqlconn; 28 29 //以下是最关键的三行代码,他们和using是没有替代关系的, 30 sqlconn.Open(); 31 rowsnum+=sqlcom.ExecuteNonQuery();//执行SQL语句,返回受影响数 32 sqlconn.Close(); 33 34 } 35 } 36 } 37 Console.WriteLine("成功导入记录{0}条", rowsnum); 38 Console.ReadKey(); 39 } 40 }
完整代码,中间遇到很多问题,改了很多次。看起来比较乱
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 using System.Data.SqlClient; 7 8 namespace _0607从文本到数据库 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 //读取硬盘文件 15 string[] namefile = File.ReadAllLines(@"f:\student.txt"); 16 //string[] linedata = linedata(namefile.Length); 17 18 //存储SQL受影响行数的变量 19 int rowsnum=0; 20 21 // 声明数据表字段变量 22 //int sId = 0; 23 //string sName = ""; 24 //int sAge = 0; 25 //bool sGender; 26 //string sClass = ""; 27 28 //连接数据库 29 string sqlconstr = @"server=.\SQLEXPRESS;database=MyDataBase15_31;uid=sa;pwd=sa"; 30 SqlConnection sqlconn = new SqlConnection(sqlconstr); 31 //建立通道 准备执行Sql语句 32 string sqlcomstr = @"insert into student2 (sName,sAge,sGender,sClass) values('{0}','{1}','{2}','{3}')"; 33 SqlCommand sqlcom=new SqlCommand(); 34 using (sqlconn) 35 { 36 using (sqlcom) 37 { 38 for (int i = 0; i < namefile.Length; i++) 39 { 40 //分割每条记录,以字段为单位存入数组linedata[] 41 //1 42 string[] linedata = namefile[i].Split(new char[]{'\t'}, StringSplitOptions.RemoveEmptyEntries);//StringSplitOptions.RemoveEmptyEntries 空值不计入数组; //separator 43 //2string[] linedata = namefile[i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 44 //3 string[] linedata = namefile[i].Split(new string[] { "\t" }, StringSplitOptions.RemoveEmptyEntries); 45 //4 string[] linedata = namefile[i].Split(new char[] { '\t' }); 46 //换成'\t'这样报错 47 48 // 拼接SQL语句 字符串 49 ////遍历1 foreach (string tem in linedata) 50 // { 51 // // Console.Write("\r\n{0}", tem); 52 // // sqlconn.Open(); 53 54 // sqlcom.CommandText = string.Format(sqlcomstr, linedata[1], linedata[2], linedata[3], linedata[4]); 55 // } 56 // 遍历2 57 // for (int ii = 0; ii < namefile.Length; ii++) 58 // { 59 //sqlcom.CommandText="insert into student2 (sName,sAge,sGender,sClass) values('章夏槐','9','False','PHP')"; 60 sqlcom.CommandText = string.Format(sqlcomstr, linedata[1], linedata[2], linedata[3], linedata[4]);//连接数据库,执行SQL语句 61 62 63 sqlcom.Connection = sqlconn; 64 //以下是最关键的三行代码,他们和using是没有替代关系的, 65 sqlconn.Open(); 66 rowsnum+=sqlcom.ExecuteNonQuery();//执行SQL语句,返回受影响数 67 sqlconn.Close(); 68 69 70 // } 71 } 72 } 73 } 74 Console.WriteLine("成功导入记录{0}条", rowsnum); 75 Console.ReadKey(); 76 } 77 78 } 79 }
完成效果:
=========================================================================
SqlCommand.CommandText 属性
取或设置要对数据源执行的 Transact-SQL 语句、表名或存储过程。
语法:
public override string CommandText { get; set; }
属性值
类型:System.String
要执行的 Transact-SQL 语句或存储过程。默认值为空字符串。
实现
IDbCommand..::.CommandText
示例:
1 public void CreateCommand() 2 { 3 SqlCommand command = new SqlCommand(); 4 command.CommandText = "SELECT * FROM Categories ORDER BY CategoryID"; 5 command.CommandTimeout = 15; 6 command.CommandType = CommandType.Text; 7 }
SqlCommand.Connection 属性
获取或设置 SqlCommand 的此实例使用的 SqlConnection。
语法:
public SqlConnection Connection { get; set; }
属性值
类型:System.Data.SqlClient.SqlConnection
与数据源的连接。默认值为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。