• Insert Multiples Records to Sql Server Database.


    Introduction

    Sometimes we need to updates databases by sending more than just one record, so datatables will be very useful in these cases.

    I will explain an example about how to insert multiple records from text file to a Sql Server Database.

    Background

    Datatables were born in Sql Server version 2008, so this object allows store a great amount of records and sending to a database consuming low resources of memory, this object is suitable if you have to transfer a lot records without break down the server.

    Using the code

    You will need create an console application .net app (c# or vb) to read the text file.

    Create a database called NetSamples with the next fields:

    After of that, you must create the object DataTable like this:

    Run this sentence in your Database:

    CREATE TYPE dbo.tbCountry AS TABLE (
        idCountry smallint,
        name varchar(100)
    );
    

    Create a console applicattion and after add the datatable structure definition in your code :

    /// <summary>
    /// This example method generates a DataTable.
    /// </summary>
    static DataTable GetTable()
    {
         DataTable table = new DataTable();
         table.Columns.Add("idCountry", typeof(short));
         table.Columns.Add("name", typeof(string));
         return table;
    }

    Create a stored procedure that will receive a datatable parameter and after this datatable will be inserte in just one Sql sentence , like this :

    CREATE PROCEDURE InsertCountries
    @dtCountry dbo.tbCountry READONLY
    AS
    BEGIN
    INSERT INTO Country(idCountry,[name]) SELECT idCountry,[name] FROM @dtCountry
    END
    GO

    Define a function to read the text file and stored each record inside the DataTable called table.

    public static void readFile() {
                try
                {
                    DataTable table = new DataTable();
                    table = GetTable();
    
                    // Create an instance of StreamReader to read from a file.
                    // The using statement also closes the StreamReader.
                    using (StreamReader sr = new StreamReader(System.Environment.CurrentDirectory + @"Countries.txt"))
                    {
                        string line;
                        int i = 1;
    
                        // Read and display lines from the file until 
                        // the end of the file is reached. 
                        while ((line = sr.ReadLine()) != null)
                        {
                            table.Rows.Add(i, line);
                            Console.WriteLine(line);
                            i++;
                        }
                    }
                    //Insert datatable to sql Server
                    insert(table);
                }
                catch (Exception e)
                {
                    // Let the user know what went wrong.
                    Console.WriteLine("The file could not be read:");
                    Console.WriteLine(e.Message);
                }
                Console.ReadKey();
            }

    Define a function to insert dtData (datatable) to Sql Server Database NetSamples.

    static void insert(DataTable dtData) {
                SqlConnection con = new SqlConnection(@"Data Source=COBOGPGP8468SQLSERVER;Initial Catalog=NetSamples;Integrated Security=True");
                SqlCommand cmd = new SqlCommand("InsertCountries", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@dtCountry", dtData);
                cmd.Connection = con;
                try
                {
                    con.Open();
                    cmd.ExecuteNonQuery();
                    Console.WriteLine("Records inserted successfully!");
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    con.Close();
                    con.Dispose();
                }
            }

    Run the Console Application and You will see:

    Search in your database using the SQL sentence : "Select * from Country"

  • 相关阅读:
    vagrant中配置多虚拟机
    更改centos的hostname
    静态变量设为nonpublic或者加final关键字
    随机数Random和SecureRandom
    C#技术栈入门到精通系列18——映射框架AutoMapper
    C#技术栈入门到精通系列13——日志框架Log4Net
    MFC 弹出窗口初始化
    MFC ListControl 智障总结
    Windows本地磁盘无法重命名
    C++ private类访问
  • 原文地址:https://www.cnblogs.com/KSalomo/p/6559797.html
Copyright © 2020-2023  润新知