您的位置:首页 > 数据库

SqlCommand.Parameters.Add()用法

2014-05-27 20:08 375 查看
private bool AddInfo(string strName, string strImage)

{

    sqlcon = new SqlConnection(strCon);

    FileStream FStream = new FileStream(strImage, FileMode.Open, FileAccess.Read);

    BinaryReader BReader = new BinaryReader(FStream);

    byte[] byteImage = BReader.ReadBytes((int)FStream.Length);

    SqlCommand sqlcmd = new SqlCommand("insert into tb_Image(name,photo) values(@name,@photo)",
    sqlcon);

    sqlcmd.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = strName;

    sqlcmd.Parameters.Add("@photo", SqlDbType.Image).Value = byteImage;

    sqlcon.Open();

    sqlcmd.ExecuteNonQuery();

    sqlcon.Close();

    return true;



========================================

上段代码中蓝色部分中的@是什么意思?是如何使用的?还有SqlCommand.Parameters.Add()的用法

2010年6月4日 6:22

回复

|

引用

|

今夜有雨

0 分数


答案







0

登录进行投票

@表示这是一个变量,在这里表示参数,将从SQL外部传入,这和下面的@name是对应的。

SqlCommand.Parameters.Add()用法可以参考http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection_methods(v=VS.100).aspx

其实我个人还是比较倾向于SqlCommand.Parameters.Add(new SqlParameter("@param", value))的写法,简洁一些。

Tech Blog: http://gildor.cnblogs.com

已标记为答案 Mog
Liang 2010年6月11日
1:15

2010年6月6日 8:46

回复

|

引用

|

Gildor
Wang

720 分数







0

登录进行投票

@表示这是一个变量,在这里表示参数,将从SQL外部传入,这和下面的@name是对应的。

SqlCommand.Parameters.Add()用法可以参考http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection_methods(v=VS.100).aspx

其实我个人还是比较倾向于SqlCommand.Parameters.Add(new SqlParameter("@param", value))的写法,简洁一些。

Tech Blog: http://gildor.cnblogs.com

呵呵 不过最好指定类型不然.NET自己还要分析下~~~

我比较喜欢用AddWithValue方法,哈哈 不过和你这样添加也都差不多
I see you~http://hi.baidu.com/1987raymondMy
Blog~~~

已标记为答案 今夜有雨 2010年6月11日
1:22

2010年6月8日 2:33

回复

|

引用

|

Raymond
Tang

(MVP)
17,510 分数







0

登录进行投票

你好!

上面的@只是 C#里面写sql的一种参数形式! 在java中, 是使用 “?” 作为占位符的 [insert into tbl values(?,?,?)] ,而在C#中就是: [insert into tbl values(@parm1,@parm2,@parm3)], 把他看作参数就是了吧!

既然是参数, 所以就需要给对应的参数赋值了!

sqlcmd.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = strName; 

    sqlcmd.Parameters.Add("@photo", SqlDbType.Image).Value = byteImage;

你这里就是对应个上面的@name,@photo参数在赋值! 这里是区分大小写的! ,SqlDbType.VarChar:指定参数类型,与你设计数据库的字段类型一样, 50:数据长度, 与你设计数据库设置的长度一样!

我一般的写法:

SqlParameter[] paras = {

      new SqlParameter("@name", strName),

      new SqlParameter("@photo", byteImage)

};

sqlcmd.Parameters.AddRange(paras);

这样我感觉代码比较简洁! 当然各有各的爱好风格.

 

希望对你有帮助!

Anything Is Possible !

已标记为答案 今夜有雨 2010年6月11日
1:28

2010年6月8日 6:31

回复

|

引用

|

Jiang
Hao

Nexocial

375 分数


全部回复







0

登录进行投票

@表示这是一个变量,在这里表示参数,将从SQL外部传入,这和下面的@name是对应的。

SqlCommand.Parameters.Add()用法可以参考http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection_methods(v=VS.100).aspx

其实我个人还是比较倾向于SqlCommand.Parameters.Add(new SqlParameter("@param", value))的写法,简洁一些。

Tech Blog: http://gildor.cnblogs.com

已标记为答案 Mog
Liang 2010年6月11日
1:15

2010年6月6日 8:46

回复

|

引用

|

Gildor
Wang

720 分数







0

登录进行投票

@表示这是一个变量,在这里表示参数,将从SQL外部传入,这和下面的@name是对应的。

SqlCommand.Parameters.Add()用法可以参考http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection_methods(v=VS.100).aspx

其实我个人还是比较倾向于SqlCommand.Parameters.Add(new SqlParameter("@param", value))的写法,简洁一些。

Tech Blog: http://gildor.cnblogs.com

呵呵 不过最好指定类型不然.NET自己还要分析下~~~

我比较喜欢用AddWithValue方法,哈哈 不过和你这样添加也都差不多
I see you~http://hi.baidu.com/1987raymondMy
Blog~~~

已标记为答案 今夜有雨 2010年6月11日
1:22

2010年6月8日 2:33

回复

|

引用

|

Raymond
Tang

(MVP)
17,510 分数







0

登录进行投票

你好!

上面的@只是 C#里面写sql的一种参数形式! 在java中, 是使用 “?” 作为占位符的 [insert into tbl values(?,?,?)] ,而在C#中就是: [insert into tbl values(@parm1,@parm2,@parm3)], 把他看作参数就是了吧!

既然是参数, 所以就需要给对应的参数赋值了!

sqlcmd.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = strName; 

    sqlcmd.Parameters.Add("@photo", SqlDbType.Image).Value = byteImage;

你这里就是对应个上面的@name,@photo参数在赋值! 这里是区分大小写的! ,SqlDbType.VarChar:指定参数类型,与你设计数据库的字段类型一样, 50:数据长度, 与你设计数据库设置的长度一样!

我一般的写法:

SqlParameter[] paras = {

      new SqlParameter("@name", strName),

      new SqlParameter("@photo", byteImage)

};

sqlcmd.Parameters.AddRange(paras);

这样我感觉代码比较简洁! 当然各有各的爱好风格.

 

希望对你有帮助!

Anything Is Possible !

已标记为答案 今夜有雨 2010年6月11日
1:28

2010年6月8日 6:31

回复

|

引用

|

Jiang
Hao

Nexocial

375 分数







0

登录进行投票

没特殊直接用Parameters.AddWithValue就是了!

2010年6月9日 6:21

回复

|

引用

|

shizhusz110

15 分数







0

登录进行投票

@name 是sql中的参数名称或者是存储过程的参数名称。

2010年6月9日 6:23
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: