前文,我们针对SQL演示数据库,展开了各种各样的查询。而数据库编程中,四雄CRUD往往一起出现。本篇,我们将介绍LINQ中的CUD操作。

CRUD是什么东西?嘿嘿,CRUD就是当当当当当当当当~

  • Create 创建 (增)
  • Retrieve 选择 (查)
  • Update 更新 (改)
  • Delete 删除 (删)

连起来,就形成了数据库编程中,四个最基本的操作——增删改查。

本篇,我们将探索:

  • 增加一条记录;
  • 修改这条记录;
  • 删除这条记录

Let go through one by one

 

增加一条记录:

目标:往NbStorage数据中,增加一条型号为X300笔记本的记录,它是LENOVO公司的笔记本,售价28000,重2.1千克,并且存放在1号仓库中。

(如果您不明白NbStorage是什么,那么,请参考《VB9.0新特性之LINQ(四) - LINQ to SQL》一文)

首先,我们来看一下当前的数据库情况。打开SQL的查询分析器,执行SQL语句把数据查询出来:

select * from

 

结果如下:

VBA操作MYSQL增删改查 vb数据库增删改查_数据库

我们来看看如何通过SQL,把数据插入到数据表中。

首先,创建一个数据库实例,然后我们根据要求创建一个NbStorage的对象entityToAdd:

Dim db As NbStorageDataContext = New
Dim entityToAdd = New NotebookStorage With
"Lenovo", _ 
        .Type = "X300", _ 
        .Price = 28000, _ 
        .Weight = 2.1, _ 
        .WarehouseId = 1}

 

然后,声明在Submit时,要提交这个修改:

'Declare that it will be insert when submit 
db.NotebookStorages.InsertOnSubmit(entityToAdd)

 

最后,进行提交操作:

'Submit change 
Try 
    db.SubmitChanges() 
Catch ex As
    Console.WriteLine(String.Format("{0} - {1}", "插入失败", ex.Message)) 
End Try

 

插入后,我们得到的SQL结果如下,新增行已经反选显示,这一条数据就已经被插入:

VBA操作MYSQL增删改查 vb数据库增删改查_数据库_02

 

修改一条记录:

目标:在NbStorage数据中,刚才新增的X300笔记本,由于时期促销,需要降价至90%,因此,我们需要把对数据库记录进行更新:

第一步,建立数据库,并且获取出需要修改的记录:

'Create db 
Dim db = New
'Retrieve the entity need to update 
Dim entityToUpdate = (From aLaptop In
                Where aLaptop.Brand = "Lenovo" And
                aLaptop.Type = "X300"
                        Select

 

第二步,根据要求,修改实例数据:

'Cut off to 90% 
entityToUpdate.Price = entityToUpdate.Price * 0.9

 

第三步,提交修改:

'Submit change 
Try 
    db.SubmitChanges() 
Catch ex As
    Console.WriteLine(String.Format("{0} - {1}", "更新失败", ex.Message)) 
End Try

 

提交修改以后,数据库中的结果如下:

VBA操作MYSQL增删改查 vb数据库增删改查_基础_03

 

删除一条记录:

目标:在NbStorage数据中,刚才新增的X300笔记本,销售火爆,已经断货,故需要将其从数据库中删除:

第一步,建立数据库,并且获取出需要删除的记录:

'Create db 
Dim db = New
'Retrieve the entity to delete 
Dim entityToDelete = (From aLaptop In
                        Where aLaptop.Brand = "Lenovo" And
                        aLaptop.Type = "X300").FirstOrDefault()

 

第二步,根据条件,声明要删除的实体:

'Delcare delete the entity in db 
db.NotebookStorages.DeleteOnSubmit(entityToDelete)

 

第三步,提交变更:

'Submit change 
Try 
    db.SubmitChanges() 
Catch ex As
    Console.WriteLine(String.Format("{0} - {1}", "删除失败", ex.Message)) 
End Try

 

删除以后,我们再次进行数据库查询,看到X300的记录,已经被删除了。

VBA操作MYSQL增删改查 vb数据库增删改查_数据库_04

 

让我们来小结一下:

数据库中常用的操作有CRUD四种,本篇涉及到了其中三种操作(其实,删、改操作也用到了选择操作)。每一种操作,都是先对数据要做的操作进行准备——或者是新建实体,或者是选择出需要操作的实体。然后,进行相应的增删改操作,但此时的操作不会立即提交到数据库。最后,提交修改,如果没有出现异常,那么,将对数据库作出相应的修改。

 

附:本文中涉及到的三个操作对应的代码:

Public Sub
Dim db As NbStorageDataContext = New
Dim entityToAdd = New NotebookStorage With
"Lenovo", _
"X300", _
                            .Price = 28000, _
                            .Weight = 2.1, _
                            .WarehouseId = 1}
'Declare that it will be insert when submit
        db.NotebookStorages.InsertOnSubmit(entityToAdd)
 
'Submit change
Try
            db.SubmitChanges()
Catch ex As
String.Format("{0} - {1}", "插入失败", ex.Message))
End Try
 
End Sub
 
Public Sub
'Create db
Dim db = New
'Retrieve the entity need to update
Dim entityToUpdate = (From aLaptop In
Where aLaptop.Brand = "Lenovo" And
"X300"
Select
'Cut off to 90%
        entityToUpdate.Price = entityToUpdate.Price * 0.9
 
 
'Submit change
Try
            db.SubmitChanges()
Catch ex As
String.Format("{0} - {1}", "更新失败", ex.Message))
End Try
 
End Sub
 
Public Sub
'Create db
Dim db = New
'Retrieve the entity to delete
Dim entityToDelete = (From aLaptop In
Where aLaptop.Brand = "Lenovo" And
"X300").FirstOrDefault()
'Delcare delete the entity in db
        db.NotebookStorages.DeleteOnSubmit(entityToDelete)
'Submit change
Try
            db.SubmitChanges()
Catch ex As
String.Format("{0} - {1}", "删除失败", ex.Message))
End Try
 
 
End Sub