@字符是什么含义

wise019 2010-10-30 10:43:29
public int DbExecuteNonQueryByte(string _strConn, string strSql, string fid,string fname,string fdir_id,Byte[] fvalue,string fuse)
{
Database db = DatabaseFactory.CreateDatabase(_strConn);
DbCommand dbCommand = db.GetSqlStringCommand(strSql);
db.AddInParameter(dbCommand, "@fid", DbType.String, fid);
db.AddInParameter(dbCommand, "@fname", DbType.String, fname);
db.AddInParameter(dbCommand, "@fdir_id", DbType.String, fdir_id);
db.AddInParameter(dbCommand, "@fvalue", DbType.Binary, fvalue);
db.AddInParameter(dbCommand, "@fuse", DbType.String, fuse);
return db.ExecuteNonQuery(dbCommand);
}

哪位大哥帮我解释下 @字符什么含义?代表是变量吗? 能大概给我说下这个函数的含义吗?
...全文
236 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsspace 2010-10-31
  • 打赏
  • 举报
回复
//使用工厂模式创建 Database 类型实例db
Database db = DatabaseFactory.CreateDatabase(_strConn);

//使用DbCommand 对象构造函数 (参数使用 一个Sql 查询参数)
DbCommand dbCommand = db.GetSqlStringCommand(strSql);

// 例如strSql= "select * from tb where fid=@fid "
// 为上面的 Sql 查询命令使用的参数 @Fid 设定 变量类型和值
db.AddInParameter(dbCommand, "@fid", DbType.String, fid);
skingz 2010-10-31
  • 打赏
  • 举报
回复
@....SQL传参数..
你的strSql应该是这样形式的吧
INSERT INTO [table](id1, id2) values(@ID1, @ID2)

然后直接给@ID1,@ID2传值就可以了
 db.AddInParameter(dbCommand, "@ID1", DbType.String, id1);
wangyue4 2010-10-31
  • 打赏
  • 举报
回复
@后面内容都将作为字符串来进行操作
skyering 2010-10-31
  • 打赏
  • 举报
回复
ado.net中表示SQL语句中的参数,不仅仅是存储过程,一般的增删改查都可以用。
在字符串前面加@表示将特殊字符转换为一般字符。
哥子谭 2010-10-31
  • 打赏
  • 举报
回复
用于将特殊字符转换为一般字符
jce195447 2010-10-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyazhe 的回复:]

@在字符串前面表示取消转义字符。
在SqlCommand中,表示参数名。写在字符串中的第一个字符。
[/Quote]
+1
sainmars 2010-10-31
  • 打赏
  • 举报
回复
@有两种 一种是指@后面内容都将作为字符串来进行操作
另一种是SQL中的变量开头
vip__888 2010-10-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wanghui0380 的回复:]
没有特殊意义,约定俗成的东西

就像
一般人喊的“老张”,“老李”
广东人喊“张生”,“李生”

而程序员写循环通常 是 for(int i=0) //很纳闷把。为啥循环变量都是i,j,m,k,而不是其他更有意义东西呢??
[/Quote]
放歌大大说得很对
wanghui0380 2010-10-31
  • 打赏
  • 举报
回复
没有特殊意义,约定俗成的东西

就像
一般人喊的“老张”,“老李”
广东人喊“张生”,“李生”

而程序员写循环通常 是 for(int i=0) //很纳闷把。为啥循环变量都是i,j,m,k,而不是其他更有意义东西呢??
让爱延续 2010-10-31
  • 打赏
  • 举报
回复
db.AddInParameter(dbCommand, "@fuse", DbType.String, fuse);

如果LZ参数这个概念不太理解 也可以把它当作“占位符”去处理,SQL语句中 @fuse 的位置的数据 将会被 fuse 替换。
兔子-顾问 2010-10-30
  • 打赏
  • 举报
回复
@在字符串前面表示取消转义字符。
在SqlCommand中,表示参数名。写在字符串中的第一个字符。
wuyq11 2010-10-30
  • 打赏
  • 举报
回复
在MS SQL Server中存储过程参数一律以”@”开头,而在MySQL中存储过程(MySQL从5.0以后版本支持存储过程)参数一律以“?”开头,
mq2003hwj 2010-10-30
  • 打赏
  • 举报
回复
在2000数据库或更高级版本中,对于sql语句若存在变量 变量的写法是@变量名 比如@id @name
sqlcommand.Parameter.AddWithValue("@id",id);这里面是该语句的用法 类似StringBuilder.Format("{0}",id)是个格式,要追从它
wubudang 2010-10-30
  • 打赏
  • 举报
回复
strSql里面肯定有:@fid,@fname,@fdir_id,@fvalue,@fuse。没有就错了。
这是用微软的参数化命令。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧