Sql 同时插入到相关表中

Sql 同时插入到相关表中,sql,vb.net,sql-server-2008,insert,Sql,Vb.net,Sql Server 2008,Insert,我正在从事vb.net项目。我正在使用VS2010和SQLServer2008 我的数据库中有许多表,其中包括成员和银行 members包含以下列:id\u成员、姓名、手机、电话 bank包含id\u bank、name\u bank 然后我创建了member\u bank表,其中包含两列:members.id和bank\u id,用于这两个表之间的m:n关系 如何将详细信息插入成员,并将成员id与成员银行表中的银行id直接关联 我写了这段代码,但它不起作用: Dim saveok As B

我正在从事vb.net项目。我正在使用VS2010和SQLServer2008

我的数据库中有许多表,其中包括
成员
银行

  • members
    包含以下列:
    id\u成员、姓名、手机、电话
  • bank
    包含
    id\u bank、name\u bank
然后我创建了
member\u bank
表,其中包含两列:
members.id
bank\u id
,用于这两个表之间的m:n关系

如何将详细信息插入
成员
,并将成员id与
成员银行
表中的银行id直接关联

我写了这段代码,但它不起作用:

Dim saveok As Boolean = wnclass14.SQLExicute("Insert Into members (member_name,member_id,mobile,tel) values ('" & TextstdntName.Text & "','" & Textid.Text & "','" & TextMobile.Text & "','" & Texttel.Text & "')")
If saveok = True Then
        Dim saveok1 As Boolean = wnclass14.SQLExicute("Insert Into member_bank (id_member,id_bank) values (" & ComboBoxBank.SelectedValue & ")   where member_bank.id_member=members.id")

        If saveok1 = True Then .......

我假设您希望在插入后从members表返回memberid?如果是这样,您需要查看
SCOPE\u IDENTITY()
。这将返回插入到表中的作用域的最后一个标识

这是一篇好文章:

我会提供代码,但我不太懂你的


祝你好运。

这里的诀窍之一是,你希望所有这些都作为一笔交易的一部分进行。谢天谢地,通过在一次调用中向“SQLExicute”函数发送多条语句来实现这一点并不难(请修复拼写):

当我们在这里的时候,你需要修正这个函数,这样它也需要参数数据

使用字符串连接将用户输入的数据包括在sql语句中是不合适的。
因为你还在学习,所以跳过这个是不好的。和

先“让它工作起来”然后再回去解决安全问题是没问题的,我不知道什么是
Wnclas14
,但要么他们拼错了
Execute
,要么这不是你的实际代码。你说的“不工作”是什么意思?错误信息?没有任何效果?啊!该代码易受sql注入攻击。不能使用字符串连接将输入到sql命令字符串中的用户文本框中的数据包括在内。太可怕了。如果我输入了文本
”;删除表成员--进入学生姓名字段?想想会发生什么。或者先备份数据库,自己试试。然后学习参数化查询。
wnclass14.SQLExicute( _
    "BEGIN TRANSACTION;" & _
    "DECLARE @NewID Int;" & _
    "INSERT INTO members (member_name, mobile, tel) " & _
      " VALUES ('..', '555-1234', '555-5678');" & _
    "SELECT @NewID = Scope_Identity();" & _ 
    "INSERT INTO member_bank (id_member, id_bank) " & _
      " VALUES (@NewID, '1234');" & _
    "COMMIT;)