我正在尝试使用textbox从表会话,字段session_user中的表用户插入用户ID,但似乎它不起作用..
这是我的SQL代码,我正在使用visual studio并尝试插入SQL Server表
SqlCommand addsession = new SqlCommand
("insert into dbo.session(session_user)
values (select user_id from dbo.users where username = '" + TextBox1.Text + "')",
badersql);
答案 0 :(得分:6)
当您执行VALUES
时,不应使用INSERT ... SELECT
关键字:
insert into dbo.session (session_user) select user_id from dbo.users ...
答案 1 :(得分:4)
如果要将查询结果插入另一个表格,请忽略VALUES
关键字。
VALUES
关键字可以始终替换为您要插入的值的简单SELECT 'dummy', 'value'
,但我建议您每当使用VALUES
时仍然使用' or 1 = 1
想明确表示你的结果 not 来自查询。
话虽如此,请使用parameterized queries !!想象一下,如果有人要将以下文本输入TextBox1:
{{1}}
会发生什么?
答案 2 :(得分:2)
要从查询中插入记录,请使用以下插入语法:
insert into dbo.session (session_user)
select user_id from dbo.users where username = '" + TextBox1.Text + "'
如果您希望像在values语句中那样插入一行,则可能需要执行select top 1 userid
。
答案 3 :(得分:0)
我做到了,问题是我无法命名我的记录session_user,所以我用se_user替换并解决了问题。
谢谢大家的帮助
所以正确的sql语句是
insert into sessions (se_user) select USER_ID from users where username = '';