C# SQL查询中的字符串和变量

C# SQL查询中的字符串和变量,c#,sql,sql-server,C#,Sql,Sql Server,我知道在C语言中,我们可以在字符串中使用变量 例如: int num = 3; string str = "hello, I have " + num + " apple"; 我们将如何在SQL查询的insert语句中实现这一点 假设我的表中有两列,它们是name和comments,我想在存储过程中编写一个insert语句 例如: Declare @emp_no int; Insert into employee (name, remarks) Values ('Joe', 'Emplo

我知道在C语言中,我们可以在字符串中使用变量

例如:

int num = 3;
string str = "hello, I have " + num + " apple"; 
我们将如何在SQL查询的insert语句中实现这一点

假设我的表中有两列,它们是name和comments,我想在存储过程中编写一个insert语句

例如:

Declare @emp_no int;

Insert into employee (name, remarks) 
Values ('Joe', 'Employee's number' + @emp_no) 

我想知道在我的查询中是否可以这样做?

在这一部分中有几个缺陷:

Declare @emp_no int;
    Insert into employee (name, remarks) Values ('Joe', 'Employee's number' + @emp_no)
一个接一个

您将@emp_no声明为int,但没有指定值。。。如果连接SQL字符串,其中一个字符串为NULL,则整个字符串将为NULL。。。所以最好使用DECLARE@emp\u no INT=1或类似DECLARE@emp\u no INT的东西;SET@emp\u no=从唯一性为真的员工中选择EmpNo 员工编号中的单个qoute将打断您要设置的字符串。在SQL字符串中,必须将qoutes加倍。 在SQL Server中-与C中一样-在没有强制转换的情况下,不能将字符串和int转换为字符串 如果字号后面没有空格,员工的号码将紧靠字号。。。 您可以尝试以下方法:

Declare @emp_no int=1;
    Insert into employee (name, remarks) 
    Values ('Joe', 'Employee''s number ' + CAST(@emp_no AS VARCHAR(10)))

对你可以试试,但一定要设置@emp_nothank的值,这样会比标准的字符串操作更有意义。相关人员:嗨,这里还开着吗?你需要进一步的帮助吗?