将参数传递给没有@符号的存储过程

本文关键字:符号 存储过程 参数传递 | 更新日期: 2023-09-27 18:10:22

嗯,我很好奇如果我传递一些没有@符号的参数会发生什么

public static int Run(string command,string anotherParameter, DataTable dt)
 {
   SqlDataAdapter adapter = new SqlDataAdapter("SPName", Connection.Connect);
   adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
   adapter.SelectCommand.Parameters.Add("@command",SqlDbType.NVarChar).Value=command;
   //another one without @        
   adapter.SelectCommand.Parameters.Add("anotherParameter",SqlDbType.NVarChar).Value=anotherParameter;
     try
        {
            return adapter.Fill(dt);
        }
     catch (Exception ex)
        {
            return -1;
        }
        finally
        {
            adapter.Dispose();
        }     
 }

这个可能有时运行,另一个失败?

谢谢

将参数传递给没有@符号的存储过程

如果未在参数名称前添加"@",则会自动添加"@"。但是最好的做法是手动添加@,不要依赖于自动功能。更多信息请参见http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.parametername.aspx