1)一旦我有了数据,每次我需要添加、编辑或删除记录时,我都必须打开一个连接,触发一个 sql 并关闭连接。正确的 ?有没有办法在不使用 Sql 的情况下做到这一点?另外,这个概念可以吗。
不可以。要更新数据库,您必须使用该数据库。在数据库中创建一个存储过程来处理您的功能,然后从代码中调用它并传入需要保存的任何数据。不要使用内联 SQL。参数化存储过程是要走的路。
2)由于我没有使用结构,所以我需要创建空数据集来存储临时信息。这方便吗?
这取决于你在做什么。我将创建一个对象模型来保留我更新的数据,然后在需要保存我的更改时将属性传递到存储过程中。
3)如果我必须在数据集表中搜索特定的东西,那么我是否必须遍历所有项目,或者我可以在数据集上使用 sql 还是有替代方法?
您可以循环行,也可以使用 linq 提取您需要的内容。Linq 非常好,因为它基本上是针对集合的 .NET 编码查询。
有很多教程/指南向您展示如何通过存储的 proc 调用从您的代码中进行更新。还有大量的 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,则可以将保存功能放在您的类中。它会以同样的方式工作,只是没有那么清楚地分开。