‫欢迎回来｡
‫在本视频中, 我们将添加用户界面的其余部分, 现在我们将添加一项功能,
‫即删除ZUS｡
‫所以让我们开始吧｡
‫正如你所看到的, 这就是界面应该或多或少的样子, 我们将构建几乎相同的界面｡
‫我们也可以通过在底部键入相同的信息来构建它, 但这更多的是拖放它,
‫这样我们就可以执行所有需要的SQL代码, 或者一般来说, 我们需要在C sharp中执行数据库代码｡
‫首先, 让我们打开工具箱, 看看我们需要的东西｡
‫我们需要一些按钮, 我将把一个按钮拖到这里, 就像这样, 稍微拉开一点距离｡
‫这个按钮应该显示删除内容之类的内容｡
‫然后我会复制这个按钮｡
‫复制粘贴｡
‫我将把它拖到它旁边｡
‫这一个是删除动物, 因为我们没有删除它, 但我们只是删除它｡
‫而且这一条不是删除内容, 而是顺便删除动物园｡
‫所以我们必须删除zoo和animal｡
‫现在复制并粘贴｡
‫我把它放在这里｡
‫再次复制并粘贴｡
‫实际上, 它只是在重命名按钮之前创建按钮｡
‫在这里, 然后另一个在底部这里｡
‫最后一个在上面｡
‫所以也许我们应该把一切都拖得更远一点｡
‫就像这样
‫所以有足够的空间来放置删除按钮, 这个按钮可以像这样｡
‫好吧, 我会的
‫现在我们实际上可以做的是把这些列表也向下拖动一点, 这样列表就和右手边的列表一样高了｡
‫这不是一个完美的用户界面, 它是关于其他主题的, 你知道的｡
‫所以500太多了｡
‫450应该没问题｡
‫现在, 让我们看看600｡
‫还是太多了｡
‫或者625｡
‫所以600应该更好一点, 也许580或类似的东西｡
‫好了, 现在所有的按钮都在里面了｡
‫我们的主窗口看起来不错｡
‫我们甚至可以改变我们的标题的名称｡
‫让它成为动物园管理员吧｡
‫好了, 我们有动物园名单了｡
‫删除动物园｡
‫现在, 我们可以更改所有这些按钮｡
‫内容｡
‫所以那一个是动物园｡
‫那个是最新动物园｡
‫事实上, 这一个没有更新为这是一个动物, 因为他们不是在从上到下的顺序｡
‫他们只需要点击这里｡
‫正如你所看到的, 它马上就为我选择了正确的答案｡
‫所以这一个应该是更新动物园｡
‫这里的按钮是更新动物｡
‫那一个是删动物动物｡
‫这里的那个就是｡
‫将动物添加到动物园, 将动物头添加到动物园｡
‫现在我想我们结束了｡
‫更新动物园其实这一个更新动物园, 一个应该改变｡
‫更新任何更多｡
‫好了, 现在我们所有的按钮都没问题了｡
‫我们只需要在中间放一个文本框, 我会像这样重新定位它, 让它变宽,
‫这样就可以了｡
‫我们甚至可以更改文本框的字体大小, 使其更大一些｡
‫不过应该没问题｡
‫正如我所说的, 这里不是关于完美主义, 也不是关于这个UI中的完美主义｡
‫好的, 现在我们有了这个, 我们可以继续添加删除动物园按钮｡
‫所以我双击这个按钮｡
‫我得到了这个按钮点击事件, 实际上我不喜欢这个名字, 所以这可能不是最好的｡
‫让我们回到过去, 让我们改变它｡
‫我们有一个按钮, 它收到了一个叫做按钮点击的事件, 我将称之为删除动物园,
‫甚至可能是下划线点击｡
‫这将是我将要创建的新事件处理程序｡
‫我将复制这个名字, 然后自己实现这个方法.
‫这是私人空间, 删除, 动物园, 点击｡
‫如你所知, 它需要一个对象, 它是发送者, 它需要一个根事件｡
‫还有这里.
‫现在, 在这里, 我们可以简单地检查第一, 如果按钮的工作, 消息框或显示删除动物园被点击或类似的东西｡
‫删除动物园被点击, 现在让我们运行它, 看看按钮是否正常工作｡
‫好吧, 我会的
‫是的｡
‫这是我们的界面｡
‫一切似乎都已经好了｡
‫现在让我们删除动物园｡
‫已单击“删除动物园”｡
‫好极了｡
‫所以按钮是有效的｡
‫现在, 我们可以在这里继续并正确地实现它｡
‫我将创建一个新的查询, 因为我希望它删除一些内容｡
‫所以我将使用delete关键字从which表中删除, 从zoo表中ID等于的地方删除｡
‫现在我们要在zoo ID中使用一个叫做zoo ID的变量, 这个变量就是我们需要创建的变量｡
‫因此, 我们需要创建一个新的参数, 就像我们在这里看到的SQL参数一样｡
‫我们使用这个SQL命令参数, 加上值, 我将向你们展示处理这个SQL东西的另一种方法｡
‫所以不使用这个适配器｡
‫好吧, 我会的
‫所以我们就用下面的代码｡
‫SQL命令将成为新的SQL命令｡
‫在这里, SQL命令需要一些信息｡
‫首先, 它需要一个查询和SQL连接｡
‫所以没什么新鲜事｡
‫我们已经看到了｡
‫SQL命令查询和SQL连接, 现在我们可以继续并启动此连接, SQL连接打开｡
‫因此, 我们要打开一个到SQL的连接, 现在我们要将参数添加到此SQL命令中｡
‫因此参数点与值相加｡
‫在这里, 我用了这个缩放ID, 我在这里的顶部｡
‫所以它必须和我们这里的完全一样｡
‫然后我简单地说出我想删除的内容, 然后我会说List Zeus Dot selected.
‫因为选择的值不是动物的名字, 因为它实际上是ID, 现在我们可以执行代码了｡
‫因此, SQL Command Dot Execute Scalar会执行查询, 并传回第一列的第一个数据行,
‫以及查询所传回的结果集｡
‫其他列或角色将被忽略｡
‫我们需要它的目的是, 这几乎是执行SQL命令的最简单的方法, 该命令将在我们的SQL连接上执行查询｡
‫而且这不会有开销｡
‫这将是超级简单的执行｡
‫好吧, 我会的
‫当然, 现在我们还需要关闭SQL连接｡
‫所以SQL连接关闭了, 因为正如你所看到的, 我们需要打开一个连接｡
‫我们需要添加参数, 执行代码, 然后需要再次关闭连接,
‫否则可能会遇到错误｡
‫现在我想展示的是宙斯号｡
‫这里有一件事需要考虑, 因为我们有很多动物园, 我们有很多动物,
‫我们甚至有一个关系表, 它把两者结合起来｡
‫因此, 动物是在一个特定的动物园, 但如果我删除一个动物园,
‫我想也应用删除所有不同的动物园动物条目｡
‫是这样｡
‫让我们看一下数据, 这样就更明显了｡
‫让我们来看看动物园的桌子和动物园的动物桌子｡
‫假设我删除了纽约, 它有一个想法｡
‫把动物园ID一号留在这里是没有用的｡
‫所以这个动物园ID是1这个动物园ID是1｡
‫ID 1和ID 2, 这些条目不再需要了, 因为动物园里没有动物,
‫因为动物园已经不存在了｡
‫这就是为什么我们可以简单地删除这两个条目｡
‫但我们不需要手动操作｡
‫通过在代码中应用它｡
‫实际上, 我们也可以调整数据表, 调整数据表几乎可以完成这项工作｡
‫因此打开表定义｡
‫那又怎样？
‫我要开门了｡
‫最后, 我只需要在这里添加删除级联｡
‫好吧, 我知道了
‫我这样做是为了两个专业人士｡
‫因此, 对于我们的动物, 对于墨水和我们的动物园墨水的约束｡
‫如果相应的条目不可用, 它会简单地删除该条目, 更重要的是,
‫我们连接到的动物园中的相应ID｡
‫如果我们删除了一个动物园, 那么我们不再需要动物园里的所有动物, 不是动物本身,
‫而是动物园和动物之间的这种关联或关系｡
‫所以我们也可以把它们去掉｡
‫这就是这两个条目｡
‫这是一个关于删除的级联允许我们这样做, 现在我们可以执行代码之前, 我们需要更新, 只是为了让你看到,
‫这实际上可能会导致错误｡
‫所以我现在要执行代码｡
‫我将启动它, 并尝试删除一些内容, 您将看到此处出现的错误｡
‫所以我要删除凯拉｡
‫它说删除语句与引用约束冲突｡
‫Zoo f k数据库表zoo和so列zoo ID发生冲突, 语句被终止｡
‫所以我们有这个错误, 如果我们搜索这个错误, 我们会发现这是因为我们缺少这个｡
‫因此, 在删除级联, 这是因为我们还没有更新它｡
‫因此, 现在让我们使用新的设计和更新的表约束来更新数据库｡
‫一旦完成, 更新完成并成功, 那就太好了｡
‫我们可以重新开始, 我们会看到删除Chiro现在的工作｡
‫现在我们没有收到错误｡
‫那为什么开罗还在那里？
‫这与我们不强制转换或调用显示或更新列表的方法有关｡
‫让我们回到我们的代码, 它实际上在这里｡
‫所以我们有了这个代码, 现在我们需要展示所有的动物, 或者说所有的动物园｡
‫显示动物园｡
‫现在让我们重新开始｡
‫你会发现, 那只麒麟已经不见了｡
‫所以它已经不在那里了｡
‫正如你所看到的, 开罗已经把它删除了｡
‫现在让我们删除柏林｡
‫然后我们得到一个SQL错误｡
‫但它消失了｡
‫如你所见, 有一个错误, 因为我们删除了一些东西, 这个错误是由我们的动物园或相关的动物应用的,
‫我们称之为异常, 对吗？
‫我们遇到了catch异常, 他们向我们显示了此错误｡
‫但现在这是一个很大的进步｡
‫现在我要做的就是更新这段代码, 这样当我们遇到错误的时候, 它就不会停止我们的程序了｡
‫所以我将构建一个try catch, 最后｡
‫块｡
‫所以我们还没有经常使用finally, 但这次它真的很有意义｡
‫那么我在try中要执行的代码是什么呢？
‫BLOCK好吧, 一切都准备好了｡
‫所以这一切都可能出错｡
‫如果我们想关闭这里的连接｡
‫最后, 这是正确的方法, 因为如果我们在这里打开它, 我们需要在一个点上关闭它,
‫我们应该最终关闭它, 因为即使它工作或它不工作, 我们只是想关闭它,
‫并确保它会｡
‫一切都很好｡
‫同样的道理也告诉我们, 如果它起作用了, 或者它没有起作用, 那就没有关系了｡
‫我们只调用show Zoo方法, 它将很好地显示仍然在我们表中的动物园｡
‫现在, 我将在这里使用一个异常名称, 而不是仅仅抛出一个错误｡
‫我把它命名为E, 并把它显示在我的消息框里｡
‫所以会显示一个消息框, 这个消息框是e点到字符串, 就像这样｡
‫好吧, 我会的
‫现在, 这个, 我们可以称之为X, 也许｡
‫也许这样更好｡
‫因为这里的问题是我们的根事件已经被称为E, 所以我们应该把它称为x OC｡
‫现在, 让我们重新开始, 看看是否可以从列表中删除组件｡
‫而且我们也没有多少左右｡
‫所以我们把东京删掉吧｡
‫我们得到了这个, 在一个join中, animal的var char, 期望参数区是, 但没有提供,
‫这实际上是一个错误, 对我们没有任何帮助｡
‫我将删除这个消息框, 因为我们确实收到了一个错误, 但我暂时忽略它, 因为它还在工作,
‫对吗？
‫我们的程序仍在工作, 并做它应该做的｡
‫所以这段代码仍然在这里执行, 显示相关的动物｡
‫在这种情况下, 我们没有任何东西在那里｡
‫好吧, 我知道了
‫所以我们没有选择应该显示相关动物的东西｡
‫所以我要在这里去掉这个异常｡
‫还有顺便提一下｡
‫是的, 我知道
‫其他的都应该没问题｡
‫好吧, 那么｡
‫是的, 差不多就是这样｡
‫现在, 您已经了解了如何从应用程序中删除组件, 在下一个视频中, 我们将向列表中添加内容｡
‫那到时见｡