• 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)。

  • 相关阅读:
    SDK Tools Dependencies
    hibernate开发中遇到多对多的问题,可以转换为两个一对多
    利用PC 转发 模拟手机端之间socket通信
    假如你被当成精神病关进了精神病院
    通过JSONP实现完美跨域
    查看linux系统版本命令
    Eclipse+python开发环境配置
    linux chkconfig命令参数及用法详解
    Fedora 17 安装后要做的几件事:MP3,桌面定制,root登录等
    Fedora 17 配置 Nginx + Mysql + php
  • 原文地址:https://www.cnblogs.com/net515/p/2541169.html
Copyright © 2020-2023  润新知