C# 查询sql时候@的用法
我看到了三种记录语句的方式,感觉引用的不太一样,于是想问一问。1、stringsql=string.Format("select*fromDatawhereID={0}"...
我看到了三种记录语句的方式,感觉引用的不太一样,于是想问一问。
1、string sql = string.Format("select * from Data where ID={0}", ID);
2、string sql = @"insert into ID(ID,BeginDate,EndDate) values (@A0,@A1,@A2) Select Name = @@identity";
3、string sql = @"select Name,Mobile,ID from Data where BeginDate > '"+begin+"' and EndDate <'"+end+"'order by BeginDate";
我不太理解第二种的意思,因为我把begin换成@begin再把引号去掉发现没有用,跳到异常。
而且也不知道第二种的@@indentity是什么意思,求指教。 展开
1、string sql = string.Format("select * from Data where ID={0}", ID);
2、string sql = @"insert into ID(ID,BeginDate,EndDate) values (@A0,@A1,@A2) Select Name = @@identity";
3、string sql = @"select Name,Mobile,ID from Data where BeginDate > '"+begin+"' and EndDate <'"+end+"'order by BeginDate";
我不太理解第二种的意思,因为我把begin换成@begin再把引号去掉发现没有用,跳到异常。
而且也不知道第二种的@@indentity是什么意思,求指教。 展开
5个回答
展开全部
一般我们在进行数据库操作的时候,不推荐使用 字符串相加来构造sql语句,防止SQL注入。
所以一般用传参的方式。
例如
using (SqlCommand cmd = sqlConnection.CreateCommand())
{
cmd.CommandText = "select * from AccountInfo where AccountName=@accountname";
cmd.Parameters.Add(new SqlParameter("accountname", textBox1.Text));
}
@accountname 作为参数,再在后面,把具体的数值,传入这个参数中。
在你的例子中,字符串 string 类型 前面加上@,
string sql = @"XXXXXX";
这样就可以不使用双斜线。。 因为C# 默认把单斜线当作转义符。
2013-11-14
展开全部
1:里面没有@符号 简简单单的sql查询语句 那个{0}是作为一个字符的替换 理解为把ID的指填入到{0}占位符的位置
2:第一个@表示后面的一个字符串里面不使用转义字符 这个转义字符多用于字符串表示文件路径的单斜杠 \ 如果不用@ 那么\就要表示成\\ 后面的@A0什么的是作为sql语句的参数变量
3:第一个@同2的第一个意思 但是你把begin就是一个字符串变量这个变量是c#代码里面的 你当然不能加@ 否则一定会出现异常错误的
2:第一个@表示后面的一个字符串里面不使用转义字符 这个转义字符多用于字符串表示文件路径的单斜杠 \ 如果不用@ 那么\就要表示成\\ 后面的@A0什么的是作为sql语句的参数变量
3:第一个@同2的第一个意思 但是你把begin就是一个字符串变量这个变量是c#代码里面的 你当然不能加@ 否则一定会出现异常错误的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@转义符,表示后面的字符按转义处理。即比如反斜杠不用再前面加一个反斜杠了,等等。
@@indentity:SQL内置。实时返回最后一条记录的ID号。
@@indentity:SQL内置。实时返回最后一条记录的ID号。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就第一种我偶尔用,基本都走参数化了。学习了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@@indentity返回当前主键的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询