IT评测·应用市场-qidao123.com技术社区

标题: AI岗实习疑难杂症小记(一些重要而小众的题目心得)——数据库(SQL Server)相干篇(C#) [打印本页]

作者: 大连密封材料    时间: 2025-3-28 21:00
标题: AI岗实习疑难杂症小记(一些重要而小众的题目心得)——数据库(SQL Server)相干篇(C#)
提示:某上市公司AI岗实习过程中的一点学习心得(实习不断,更新不断!)
  
  

前言

某上市公司AI岗菜鸟实习过程中的一点学习记载,本篇记载实际业务实现过程中与 SQL Server数据库访问 相干的一些心得。本人主要使用C#语言,其它语言均可参考。

记载日期:2025.01.27
1. 数据入库流程

1.1 获取数据库链接


  1. string connStr = ConnectionStringUtil.Get(server, database, out errMsg);
复制代码
1.2 构建并关联数据库实体类、本地映射类


  1. public class Entities : DbContext
  2. {
  3.     public Entities(string conn)
  4.         : base(conn)
  5.     {
  6.         System.Data.Entity.Database.SetInitializer<Entities>(null);
  7.     }
  8.     protected override void OnModelCreating(DbModelBuilder modelBuilder)
  9.     {
  10.         modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
  11.     }
  12.     public DbSet<table_A> table_A { get; set; }//注1
  13. }
  14. public partial class table_A
  15. {
  16.     public int ID { get; set; }
  17.     public Nullable<System.DateTime> TDATE { get; set; }
  18.     public string SYMBOL { get; set; }
  19.     public Nullable<double> Rate { get; set; }
  20.     //public Nullable<System.DateTime> ENTRYDATE { get; set; }
  21.     //public string ENTRYTIME { get; set; }
  22. }
复制代码

  1. public class Entities : DbContext
  2. {
  3.     public Entities(string conn)
  4.         : base(conn)
  5.     {
  6.         System.Data.Entity.Database.SetInitializer<Entities>(null);
  7.     }
  8.     protected override void OnModelCreating(DbModelBuilder modelBuilder)
  9.     {
  10.         modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
  11.     }
  12.     public DbSet<midTable_A> midTable_A { get; set; }//注1
  13. }
  14. [Table("table_A")]
  15. public partial class midTable_A
  16. {
  17.     public int ID { get; set; }
  18.     public Nullable<System.DateTime> TDATE { get; set; }
  19.     public string SYMBOL { get; set; }
  20.     public Nullable<double> Rate { get; set; }
  21.     //public Nullable<System.DateTime> ENTRYDATE { get; set; }
  22.     //public string ENTRYTIME { get; set; }
  23. }
复制代码
1.3 查询


  1. public List<table_A> GetDataList(string sql, string connStr)
  2. {
  3.     using (Entities db = new Entities(connStr))
  4.     {
  5.         //sql = @"select * from table_A with (nolock) where SYMBOL = 'AAA'";
  6.         return db.Database.SqlQuery<table_A>(sql).ToList();
  7.     }
  8. }
复制代码
1.4 构建本地映射类对象


  1. table_A Model = new table_A();
  2. Model.TDATE = date;
  3. Model.SYMBOL = "AAA";
  4. //...
复制代码

  1. table_A Model = new table_A()
  2. {
  3.         TDATE = date,
  4.         SYMBOL = "AAA"
  5.         //...
  6. };
复制代码

1.5 数据入库


  1. public void AddDatabaseTable(table_A model, string connStr)
  2. {
  3.     using (Entities db = new Entities(connStr))
  4.     {
  5.         db.table_A.Add(model);//此处的table_A即数据库实体类中定义的DBSet对象,即public DbSet<table_A> table_A { get; set; }。
  6.         db.SaveChanges();
  7.     }
  8. }
复制代码
1.6 数据更新


  1. public void UpdateTable(table_A model, string connStr)
  2. {
  3.    using (Entities db = new Entities(connStr))
  4.    {
  5.        db.table_A.First(item => item.ID == model.ID).SYMBOL = model.SYMBOL;//此处的table_A即数据库实体类中定义的DBSet对象,即public DbSet<table_A> table_A { get; set; }。
  6.        db.SaveChanges();
  7.    }
  8. }
复制代码

2. sql查询踩坑


  1. if (string.IsNullOrEmpty(Name))
  2. {
  3.     continue;
  4. }
  5. string sql = $"select * from table_A with(nolock) where ID='{Id}' and name='{Name}'";
  6. return db.Database.SqlQuery<table_A>(sql).ToList();
复制代码

  1. string Name = Name.Replace("'","''");
  2. string sql = $"select * from table_A with(nolock) where ID='{Id}' and name='{Name}'";
  3. return db.Database.SqlQuery<table_A>(sql).ToList();
复制代码

3. 节约时间开销

3.1 批量入库


  1. public static void DBHelp.BulkInsert<T>(IList<T> list, string connStr, string tableName);
复制代码
批量入库(不检测库中是否有此记载,直接入库):

3.2 批量查询


3.3 案例


   文本文档解析入库流程优化
  
总结

持续更新-ing,未完待续 ~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4