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     }

完整代码,中间遇到很多问题,改了很多次。看起来比较乱

View Code
 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)。

原文地址:https://www.cnblogs.com/net515/p/2541169.html