【问题标题】:can I do insert without all the fields in the database?我可以在没有数据库中所有字段的情况下插入吗?
【发布时间】:2017-01-25 02:02:07
【问题描述】:

这可能是一个非常基本的问题,但我没有做过很多网络应用程序开发;我的第一个认真的应用程序开发。

所以,现在该应用包含 40 多个标签,我想将它们更新到数据库中。
但是,我不知道我所做的方向是否正确,因为我根据情况使用一张表进行更新或插入。
但是,我只是想测试一下我是否可以只更新几列而不是整个表。可以吗?
我不想创建一个单独的表,只使用一个有 40 列的表。

【问题讨论】:

  • 目前您打算如何更新?您使用的是 ADO.NET 还是 EF?
  • 我们需要知道您的数据库架构以及您是如何进行更新和插入的。

标签: c# asp.net sql-server-2008


【解决方案1】:

是的,假设您有一个包含 3 列的表,您可以只为前 2 列或任意组合插入值如果字段接受空值或具有默认值:

Table
Column1   int
Column2   int
Column3   int   Null Values [ticked]  or default value = 0

SQL:

INSERT INTO Table
(Column1, Column2) 
VALUES
(1,2)

【讨论】:

    【解决方案2】:

    是的,这当然是可能的。

    您现在有多种选择可以从 ASP.Net 应用程序与您的数据库进行交互。

    您可以使用 Jeremy Thompson 提到的简单 SQL 'INSERT' 查询并使用 command 属性(以防您使用 ADO.Net)。

    这是command 对象的示例。

    INSERT INTO Table
    (Column1, Column2) 
    VALUES
    (1,2)
    

    或者另一种选择是使用 ORM,例如实体框架。

    如果您使用的是实体框架;然后,您可以使用 dbContext 类(数据库上下文),使用对象更新表并调用 dbContext 的 SaveChanges 方法将更改持久保存到数据库。

    这是一个相关问题,可能会为您提供有关如何使用 Entity framework 插入数据的更详细信息。

    您能否提供更多关于您在 Web 应用程序中使用的所有组件/框架的信息?这样会更容易更恰当地指导您。

    【讨论】:

    • 您好,我正在尝试使用 Asp.net webform C#、Json 与没有实体框架或任何其他 ORM 的存储过程结合作为要求的一部分。
    • 好的,这让它变得更加简单,因为现在您可以简单地按照上述示例中指定的方式编写插入查询,并使用 ADO.Net SQLCommand.ExecuteNonQuery 方法调用存储过程。希望这会有所帮助!
    • 你好,谢谢。但是,现在我遇到了这个插入的问题,因为这个表单不是那么直接,因为一些字段是用数据自动填充的。无论如何,我将作为一个单独的问题发布到 Stackoverflow。感谢您的回复。
    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2022-12-06
    • 2013-09-29
    • 2016-07-19
    • 2010-11-23
    相关资源
    最近更新 更多