【问题标题】:How am I able to use SQL code to store information in C#我如何能够使用 SQL 代码在 C# 中存储信息
【发布时间】:2019-02-27 18:48:39
【问题描述】:

所以在这段代码中,整个数据库被称为 GProperty,我需要访问名为 ScannedDocs 的表。如果文件名已经存在,我什么都不用做。 'filename' 是读入文件的变量,而 'fileName' 是 ScannedDocs 中的一个字段,用于在数据库中存储新文件名。如果不存在文件,我需要给它一个 id,这就是为什么我搜索最大的 id 然后加 1 以确保我给新文件一个新的 id。 我只需要一些指示来确保我正确地执行此操作。任何帮助表示赞赏。谢谢!!

        GProperty db = new Gproperty();

        List<int> args = (from ScannedDocs in db.ScannedDocs
                          where filename = fileName
                          select *).ToList(); 

        if (args.Count() = 0)
        {
            int i = select MAX(id) from db.ScannedDocs;
            db.ScannedDocs.id = i+1;

【问题讨论】:

  • 您可能不需要为每条数据获取“i”。如果您是数据库的单个用户,请获得我的最大工作量。如果你有一个多用户数据库那么你就不得不担心多个用户同时尝试写下 i。那么你在数据库中有一个存储过程获取下一个 i 并确保只有一个用户调用下一个 i 方法。

标签: c# sql sqlite


【解决方案1】:

根据您正在操作的数据库,应该有一种方法可以在插入时自动增加给定表的最大 ID。例如:IDENTITY 在 MS SQL Server 和 MySQL 上。对于 Oracle,您可以使用 CREATE SEQUENCE。

【讨论】:

  • 这个,可能结合自动增量应该满足 OP 的需求。
  • 对 SQLite 有什么建议吗?另外,我知道我没有正确查询 id。关于如何正确格式化的任何帮助?
  • @Anon SQLite 有一个名为 AUTOINCREMENT 的列属性。您不需要从 C# 代码中查询您的最大 ID。只需让您在插入命令中不告知 ID,数据库将为您提供。
猜你喜欢
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 2011-06-11
相关资源
最近更新 更多