gpt4 book ai didi

database - VB.NET 中数据库驱动程序的概念

转载 作者:搜寻专家 更新时间:2023-10-30 21:51:28 24 4
gpt4 key购买 nike

我用VB.NET开发程序已经有几年了,对它很熟悉。我没有太多接触的领域是数据库。

我正在编写一个名为电影管理器的程序(供我个人使用)。它将存储有关我拥有的电影的信息。我选择了 Sql Server Compact Edition 数据库。假设我有一个包含两个表的数据库,即 Info 和 Cast。信息表有几列,如电影名称、发行日期等。类型转换有几个列,如 first_name、last_name 等。

现在我已经创建了一个数据集,它从数据库中读取表的所有信息(打开连接、填充表信息、关闭连接)。这样在全局变量中我就有了数据库的快照。

我的查询:

  1. 一旦我有了数据,每次我需要添加、编辑或删除记录时,我都必须打开连接、触发 sql 并关闭连接。正确的 ?有没有办法不使用 Sql 来做到这一点?再加上这个概念还可以。

  2. 由于我没有使用结构,所以我需要创建空数据集来存储临时信息。这样方便吗?

  3. 如果我必须在数据集表中搜索特定内容,那么我是否必须遍历所有项目,或者我可以在数据集上使用 sql 还是有替代方法?

最佳答案

1) 一旦我有了数据,每次我需要添加、编辑或删除记录时,我都必须打开一个连接,触发一个 sql 并关闭连接。正确的 ?有没有办法不使用 Sql 来做到这一点?另外,这个概念可以吗。

没有。要更新数据库,您必须使用数据库。在数据库中创建一个存储过程来处理您的功能,然后从代码中调用它并传入需要保存的任何数据。不要使用内联 SQL。参数化存储过程是必经之路。

2) 由于我没有使用结构,所以我需要创建空数据集来存储临时信息。这样方便吗?

这取决于您在做什么。我会创建一个对象模型来保留更新后的数据,然后在需要保存更改时将属性传递给存储过程。

3) 如果我必须在数据集表中搜索特定的东西,那么我是否必须遍历所有项目或者我可以在数据集上使用 sql 还是有替代方法?

您可以循环行,也可以使用 linq 提取您需要的内容。 Linq 非常好,因为它基本上是针对集合的 .NET 编码查询。

有很多教程/指南可以向您展示如何通过代码中的存储过程调用进行更新。还有大量的 linq 教程。基本上,针对您的表的 linq 查询类似于:

dim result as Generic.List(of String) =
(from r in table.AsEnumerable()
select r
where r["columnName"] = "the value").ToList()

这个语法可能有点不对劲,但看起来是这样的。

编辑

您的模型:

Public Class EmployeeModel
Public Property Id
Public Property FirstName
Public Property Last Name
Public Property JobCode
Public Sub EmployeeModel(your params)
//set properties
End Sub
End Class

您的 DAL:

Public Shared Class EmployeeDAL
Public Shared Sub SaveEmployee(ByRef model as EmployeeModel)
// call your sp_SaveEmployee stored procedure and set the parameters to the model properties
// @id = EmpoyeeModel.Id
// @JobCode = Employee.JobCode
// ...
End Sub
End Class

我每隔几个月使用一次 VB,因此其中可能存在一些小的语法错误。但这基本上就是您需要做的全部。保存数据的函数在 DAL 中,而不是在类本身中。不过,如果您不想使用 DAL,则可以将保存功能放在您的类中。它的工作方式相同,只是没有那么清楚地分开。

关于database - VB.NET 中数据库驱动程序的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com