- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我用VB.NET开发程序已经有几年了,对它很熟悉。我没有太多接触的领域是数据库。
我正在编写一个名为电影管理器的程序(供我个人使用)。它将存储有关我拥有的电影的信息。我选择了 Sql Server Compact Edition 数据库。假设我有一个包含两个表的数据库,即 Info 和 Cast。信息表有几列,如电影名称、发行日期等。类型转换有几个列,如 first_name、last_name 等。
现在我已经创建了一个数据集,它从数据库中读取表的所有信息(打开连接、填充表信息、关闭连接)。这样在全局变量中我就有了数据库的快照。
我的查询:
一旦我有了数据,每次我需要添加、编辑或删除记录时,我都必须打开连接、触发 sql 并关闭连接。正确的 ?有没有办法不使用 Sql 来做到这一点?再加上这个概念还可以。
由于我没有使用结构,所以我需要创建空数据集来存储临时信息。这样方便吗?
如果我必须在数据集表中搜索特定内容,那么我是否必须遍历所有项目,或者我可以在数据集上使用 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/
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 10年前关闭。 Improve this qu
我正在开发一个 Android 应用程序。在此应用程序中, Logo 栏显示在所有页面( Activity )上,或者我们可以说它在所有页面上都有标题。这个 Logo 栏有几个图标,如主页、登录、通知
我正在使用 hadoop 使用开源接口(interface) HVPI 处理视频。然而,inputsplit 的实现,更准确地说是在 isSplitableobContext (context, Pa
1. 是什么? MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System
有没有办法使用 c++20s 的概念来检查一个值是否满足某些要求? 假设我正在编写某种使用分页的容器,并且我想让页面大小成为模板参数。 template class container; 我可以使用带
如何在 ArrayList 中循环遍历 ArrayList? 例如,如果我有一个名为 Plants of Plant 对象的 ArrayList。每个 Plant 对象内部都有一个随机数量的花名。我如
如何在UML类图中绘制C++概念? 具体来说,我有以下代码: template concept Printable = requires(T a, std::ostream &where) {
我有兴趣制作一个网站,在访问者访问时闪现整个网络历史记录。我计划使用 JavaScript 来获取每个观看者计算机上的历史记录,并根据他们拥有的内容以不同的速度对其进行动画处理。我的想法是使用 his
有一个模板定义,例如: template void foo( void ) { /* ... */ } 如何定义一个概念,以便N必须为非零正值(N> = 1)? 就像是: template con
封装是信息隐藏还是导致信息隐藏? 正如我们所说,封装将数据和函数绑定(bind)在单个实体中,因此它为我们提供了对数据流的控制,并且我们只能通过一些定义良好的函数来访问实体的数据。因此,当我们说封装导
下面有一个简单的代码片段,它使用以下方式进行编译: g++-9 -std=c++2a -fconcepts 这是试图定义一个需要存在函数的概念。我希望输出是"is",但事实并非如此……知道为什么吗?谢
我有一个普通二元运算符的概念 template concept is_binary_operation = requires (const T& t1, const T& t2) // e.g
我正在c++ 20中实现具有启发式功能的搜索算法。 我试图用类似这样的概念来约束我的算法可以使用的功能: template concept Heuristic = requires(SelfType
我需要了解 SAS 如何读取/执行数据步骤。当我查找有关 SAS 如何读取数据步骤的信息时,我似乎只找到有关它如何读取以进行合并的信息,我不了解与常规数据步骤相关的信息。比方说,我有这行代码: dat
最近我看到一个关于“框架”的问题,如果“框架”有不同的类型或概念。那么,存在不同“类型”的“框架”吗? 例如:NodeJS 是一种“类型”(概念),而 Hibernate ORM 是另一种“类型”(概
如何使用任何技术禁用或清除客户端浏览器 Cookie 我认为使用 javascript 可以用于任何技术 最佳答案 var cookies = document.cookie.split(";");
我正在使用 target = "_blank" 单击链接时生成新选项卡。但是,浏览器会将焦点移至该选项卡。 有没有办法让焦点保持在当前标签页上? 回答摘要 基本上,只需发送一个模拟控件点击的当前事件。
我正在尝试在我的 android/firebase(cloud firestore) 应用程序上添加一项需要其他用户批准/拒绝的功能。例如,当 Air&BnB 上的用户想要预订一个地方时,所有者必须批
这个问题在这里已经有了答案: mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... expec
public class MyClass { public static void main(String[] args) { System.out.println("Hell
我是一名优秀的程序员,十分优秀!