C# 直接使用sql语句对数据库操作 (cmd.ExecuteNonQuery)
2024-09-02 07:20:36
只介绍读和删
不管使用什么方法来对数据库进行操作都绕不开和数据库的连接问题,所以咱们先在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(, );
Console.Write("Importing ");
Console.ForegroundColor = ConsoleColor.Red;
Console.Write(Items.IndexOf(item)+);
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 = ; i < ; i++)
{
items.Add(new UserAccount
{
Account = "Ac--" + (i + ).ToString(),
PWD="PWD**"+ (i + ).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的速度进行存储。
最新文章
- DarkTrack 4 Alien Version Released RAT 下载地址&;视频教程
- google protobuf初体验
- 在​W​C​F​中​使​用​消​息​队​列​M​S​M​Q
- html下拉菜单的实现
- JavaScript基础--简单功能的计算器(十一)
- XCode使用自带SVN,SVN命令
- mysql 1093 错误
- MySQL 触发器例子(两张表同步增加和删除)
- mysql创建定时任务,每月1号删除上月数据
- cmd 命令大全
- 【原创开源应用第5期】基于RL-USB+RL-FlashFS的外挂U盘解决方案
- 【Web前端】用CSS3实现弹幕
- 在Adobe Html5 Extension的使用Nodejs的问题
- The logback manual #01# Introduction
- Latex常用整理
- subset II
- jinja2 中的 Template 批量替换json字符串中的内容
- CSS-常用媒体查询
- conda 添加bioconda源,创建/删除/重命名环境
- Codeforces 915F Imbalance Value of a Tree(并查集)