SQL INSERT,参数为查询

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

如何从数据库中插入带有值的参数。我有一些字段,我应该从这个数据库中插入值+ 1(加一)

例如

myCommand.CommandText =
            "INSERT INTO GAMES (GAME_NR, GAME_PLAYER_ID, GAME_NRONTABLE, GAME_ROLE_ID) " &
            " VALUES (@game_nr, @game_player_id, @game_nrontable, @game_role_id)"

'Example
myCommand.Parameters.Add("@game_nr", SqlDbType.Int).Value = **"(SELECT MAX(GAME_NR) FROM GAMES)" + 1**
mysql sql vb.net parameters
2个回答
0
投票

您不需要参数,可以尝试以下代码。

myCommand.CommandText =
            "INSERT INTO GAMES (GAME_NR, GAME_PLAYER_ID, GAME_NRONTABLE, GAME_ROLE_ID) " &
            " VALUES ((SELECT MAX(GAME_NR) + 1 FROM GAMES), @game_player_id, @game_nrontable, @game_role_id)"

但它看起来像是表的主键。如果Game_Nr是pr,你应该使用auto-inc。身份,然后你不需要这个参数。

这将是。

myCommand.CommandText =
                "INSERT INTO GAMES (GAME_PLAYER_ID, GAME_NRONTABLE, GAME_ROLE_ID) " &
                " VALUES (@game_player_id, @game_nrontable, @game_role_id)"

2
投票

你没有。你制作GAME_NR和自动递增的主键:

create table games (
    game_nr int auto_increment primary key,
    . . .
);

然后你做插入:

INSERT INTO GAMES (GAME_PLAYER_ID, GAME_NRONTABLE, GAME_ROLE_ID)
    VALUES (@game_player_id, @game_nrontable, @game_role_id);

让数据库完成工作。

© www.soinside.com 2019 - 2024. All rights reserved.