C# 请问@加在变量前面的意思

来源:百度知道 编辑:UC知道 时间:2024/05/16 12:06:18
例如:da.InsertCommand.CommandText = "insert into roadsegment values(@id,@ption)"; 在id ,ption 前面加@是什么意思?P.S roadsegment是一个表

还有 private SqlDataAdapter da = null; da.InsertCommand.Parameters.Add("@ption", SqlDbType.VarChar, 10, "regiondescription"); 这句Add是什么意思?
比如说 da.InsertCommand.CommandText = "insert into roadsegment values(@id,@ption)"; 和da.InsertCommand.CommandText = "insert into roadsegment values(id,ption)"; 的区别是什么?

那么da.InsertCommand.Parameters.Add("@ption", SqlDbType.VarChar, 10, "regiondescription"); 中的"regiondescription"就是用来赋给 @ption 的吗?

1、@用在转义符之前的话,代表后面的转义符不进行转义,比如:
string path=@"c:\txt.txt";
这里加了@之后,在编译的时候就知道不对后面"\"进行转义
2、@用在变量之前,代表这是变量,一般出现在调用数据库存储过程的时候,给存储过程传递参数

Add的是参数,参数名称是ption,后面规定了参数的类型等信息

da.InsertCommand.CommandText = "insert into roadsegment values(id,ption)"这句话的意思就变成了你往表roadsegment里面添加了两个字段,而且字段的值就是id,ption。而"insert into roadsegment values(@id,@ption)"; 就不一样了,你可以用id和ption代表你要插的值,然后可以赋值给他们,比如id=“001”,ption="hello"

@是个标识符,@id说明将会有后面的变量来赋值

这是个转义符,可以用来转义特殊符号,比如\,这个本来是不能当字符串用的,但你@"\"就可以直接当字符串用了,也可以用来转义关键字比如 int本来是关键字 但你 @int 这样就可以当变量用了
还有就是你的代码中所用到的.就是相当于把用到这个符号的东西当变量用,在后面的程序中给它赋值,ADD是给添加参数并指定赋值对象

在参数化查询中会用到,@id,@ption是参数,在da.InsertCommand.CommandText = "insert into roadsegment values(@id,@ption)中相当于占位,意思是后面会给他赋值。da.InsertCommand.Parameters.Add("@ption", SqlDbType.VarChar, 10, "regiondescription"); 中的"regiondescription"就是用来赋给 @ption 的吗