sql-server-2005 – 在SQL Server 2005中向存储过程添加参数之间
我想知道这两个符号之间的区别.
首先,我有一个存储过程 CREATE PROCEDURE AddSomething( @zonename varchar(50),@desc varchar(255),@TheNewId int OUTPUT ) AS BEGIN INSERT INTO a_zone(zonename,descr) VALUES(@zonename,@desc) SELECT @TheNewId = SCOPE_IDENTITY() END 如果我以这种方式添加参数有什么区别 SqlCommand Cmd = new SqlCommand("AddSomething",oConn); Cmd.CommandType = CommandType.StoredProcedure; SqlParameter oParam1 = Cmd.Parameters.AddWithValue("@zonename",sName); SqlParameter oParam2 = Cmd.Parameters.AddWithValue("@desc",description); 和 SqlCommand Cmd2 = new SqlCommand("AddSomething",oConn); Cmd2.CommandType = CommandType.StoredProcedure; cmd2.Parameters.Add("@zonename",SqlDbType.VarChar).Value = zonename.Text.Trim(); cmd2.Parameters.Add("@desc",SqlDbType.VarChar).Value = desc.Text.Trim(); 请帮帮我 谢谢你的期待 解决方法以下是一些解释:difference between command Add and AddWithValue Dim cmd as new SqlCommand("SELECT * FROM MyTable WHERE MyDate>@TheDate",conn) cmd.Parameters.Add("@TheDate",SqlDbType.DateTime).Value="2/1/2007" VS cmd.Parameters.AddWithValue("@TheDate","2/1/2007") “当进入参数时,Add强制从字符串到日期的转换.AddWithValue只是将字符串传递给SQL Server.
> http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx 编辑: 获取输出参数的示例: C# cmd.Parameters.Add(new SqlParameter("@TheNewId",SqlDbType.Int,int.MaxValue)); cmd.Parameters("@TheNewId").Direction = ParameterDirection.Output; cmd.ExecuteNonQuery(); int theNewID = (int)cmd.Parameters("@TheNewId").Value; VB.Net cmd.Parameters.Add(New SqlParameter("@TheNewId",Int32.MaxValue)) cmd.Parameters("@TheNewId").Direction = ParameterDirection.Output cmd.ExecuteNonQuery() Dim theNewID As Int32 = DirectCast(cmd.Parameters("@TheNewId").Value,Int32) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – 在sql server表中存储标签的最佳方式?
- sql-server – 免费的SQL Server数据库管理器
- sqlserver 2000 触发器 存储过程调用外部dll,可以使vb,vc
- sql-server – 当我选择一个持久的计算列时,为什么SQL Serv
- Microsoft SQL Server 2008 基本安装说明
- 【转】SQLServer汉字转全拼音函数
- sqlserver异常:传入的表格格式数据流 (TDS)远程过程调用(R
- sql-server – 使用t-sql脚本启用/禁用Sql Server Agent
- sql – 在Firebird中结合UNION ALL和ORDER BY
- SQLServer按顺序执行多个脚本的方法(sqlcmd实用工具使用方