SQL INSERT,参数为查询

时间:2018-01-20 19:46:46

标签: mysql sql vb.net parameters

如何从数据库中插入带有值的参数。 我有一些字段,我应该从这个数据库+ 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**

2 个答案:

答案 0 :(得分: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);

让数据库完成工作。

答案 1 :(得分: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)"