zoukankan      html  css  js  c++  java
  • 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)。

  • 相关阅读:
    第二十九课 循环链表的实现
    第二十八课 再论智能指针(下)
    第二十七课 再论智能指针(上)
    第二十六课 典型问题分析(Bugfix)
    普通new和placement new的重载
    leetcode 581. Shortest Unsorted Continuous Subarray
    leetcode 605. Can Place Flowers
    leetcode 219. Contains Duplicate II
    leetcode 283. Move Zeroes
    leetcode 217. Contains Duplicate
  • 原文地址:https://www.cnblogs.com/net515/p/2541169.html
Copyright © 2011-2022 走看看