zoukankan      html  css  js  c++  java
  • C# 直接使用sql语句对数据库操作 (cmd.ExecuteNonQuery)

    只介绍读和删

    不管使用什么方法来对数据库进行操作都绕不开和数据库的连接问题,所以咱们先在App.config中添加连接字段

      <connectionStrings>
        <add name="connString" connectionString="server=.;database=Chat;integrated security=true"/>
      </connectionStrings>

    随后读取该字段,需要用到 System.Configuration.dll,所以在 References 中添加该dll。

    涉及到对对象列表的操作的话,添加对应的实体类也是必须的

    所以添加如下类示例

     class UserAccount
        {
            public string Account { get; set; }
            public string PWD { get; set; }
            
        }

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    ok,正文开始

    添加一个cs文件,添加如下代码示例

    挺简单的,就不解释了,在注释中都写了

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Configuration;
    using System.Data.SqlClient;
    
    namespace CMD_SQLquery
    {
        class TermsService
        {
            string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();
    
            /// <summary>
            /// 通过SQL对数据库进行操作
            /// 核心
            /// </summary>
            /// <param name="sql">SQL语句</param>
            /// <returns></returns>
            public int ExecuteSQL(string sql)
            {
                SqlConnection conn = new SqlConnection(connString);
                SqlCommand cmd = new SqlCommand(sql, conn);
                conn.Open();
                try
                {
                    int result = cmd.ExecuteNonQuery();
                    return result;
                }
                catch (Exception)
                {
                    throw;
                }
                finally
                {
                    conn.Close();
                }
            }
            /// <summary>
            /// 拼接SQL语句  调用AddTermsVaule(string sql)
            /// 过程就是拼接和调用
            /// </summary>
            /// <param name="Items">传入的需要保存的对象列表</param>
            public void DB_AddItems(List<UserAccount> Items)
            {
                foreach (var item in Items)
                {
                    StringBuilder objStrBuilder = new StringBuilder();
                    objStrBuilder.Append("insert into UserAccount ");
                    objStrBuilder.Append("(Account,PWD) ");
                    objStrBuilder.Append("Values('{0}','{1}')");
              //如果在字段中含有‘,引号
           //Replace("'", "''");
    string sql = string.Format(objStrBuilder.ToString(), item.Account, item.PWD); Console.SetCursorPosition(0, 3); Console.Write("Importing "); Console.ForegroundColor = ConsoleColor.Red; Console.Write(Items.IndexOf(item)+1); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(" / " + Items.Count); ExecuteSQL(sql); } } } }

    在主函数中调用  示例

     static void Main(string[] args)
            {
                TermsService obj = new TermsService();
    
                Console.WriteLine("Preparing Account Data ... ");
                List<UserAccount> items = new List<UserAccount>();//准备对象列表
                for (int i = 0; i < 5; i++)
                {
                    items.Add(new UserAccount
                    {
                        Account = "Ac--" + (i + 1).ToString(),
                        PWD="PWD**"+ (i + 1).ToString()
                    });
                }
                Console.WriteLine("Prepared 5 peices of Account Data!");
                obj.DB_AddItems(items);//
    
                Console.WriteLine("Press any key to truncate table...");
                Console.ReadKey();
                string sql = "truncate table UserAccount";
                obj.ExecuteSQL(sql);//清空
                Console.WriteLine("Press any key to exit...");
                Console.ReadKey();
            }

     程序截图:

    这个方法针对数据量不大的操作,以我估算,这个方法大概能以5row/1s的速度进行存储。

    MrNou
  • 相关阅读:
    Open source cryptocurrency exchange
    Salted Password Hashing
    95. Unique Binary Search Trees II
    714. Best Time to Buy and Sell Stock with Transaction Fee
    680. Valid Palindrome II
    Java compiler level does not match the version of the installed Java project facet.
    eclipse自动编译
    Exception in thread "main" java.lang.StackOverflowError(栈溢出)
    博客背景美化——动态雪花飘落
    java九九乘法表
  • 原文地址:https://www.cnblogs.com/yangsirc/p/8488435.html
Copyright © 2011-2022 走看看