C# 向数据库表中插入多条记录

问题描述 投票:0回答:0

我有一个基于角色的权限登录,它确定登录用户可用的菜单选项。

当前,在保存新角色时,我使用存储过程。

using (SqlCommand cmd = new SqlCommand("InsertRole", con))
{
    cmd.CommandType = CommandType.StoredProcedure;
    if (con.State != ConnectionState.Open)
        con.Open();
    cmd.Parameters.AddWithValue("@RoleName", roleNameTB.Text.Trim());
    cmd.Parameters.AddWithValue("@Description", descriptionTB.Text.Trim());
    cmd.Parameters.AddWithValue("@CreatedBy", LoggedInUser.UserName);

以上显然不是完整代码。无论如何,这部分过程是有效的。

但是,我现在需要将菜单项添加到权限表中,以便为该特定角色启用或禁用菜单项。

我目前只需要插入4条新行/记录(目前创建的菜单项,总共应该不超过20条)。我希望在新角色插入角色数据库后直接插入它,或者可以通过单击插入按钮将其插入权限页面。

cmd.Parameters.AddWithValue("@RoleId", combobox.selectedvalue);
cmd.Parameters.AddWithValue("@SubMenuId", 1);
cmd.Parameters.AddWithValue("@Active", 0);

cmd.Parameters.AddWithValue("@RoleId", combobox.selectedvalue);
cmd.Parameters.AddWithValue("@SubMenuId", 2);
cmd.Parameters.AddWithValue("@Active", 0);

cmd.Parameters.AddWithValue("@RoleId", combobox.selectedvalue);
cmd.Parameters.AddWithValue("@SubMenuId", 3);
cmd.Parameters.AddWithValue("@Active", 0);

cmd.Parameters.AddWithValue("@RoleId", combobox.selectedvalue);
cmd.Parameters.AddWithValue("@SubMenuId", 4);
cmd.Parameters.AddWithValue("@Active", 0);

我知道上面是错误的,但它只是为了向您展示我需要插入的记录。

RoleId
始终是新创建的角色。我确实在
SCOPE_IDENTITY()
程序中设置了
InsertRole

从这个意义上说,我不太精通 SQL,所以我不知道实现这一目标的最佳方法是什么。

任何指导将不胜感激。如果我遗漏了什么,请不要犹豫,询问更多信息。

c# sql sql-server ado.net
© www.soinside.com 2019 - 2024. All rights reserved.