将参数传递给SQL Server 2008

ssm*_*net 0 c# sql-server

我试图将参数传递给我的存储过程.他们是这样的

@p_latitude='',@p_longitude='',@p_miles='',@p_searchtext='',@p_maptownid=182,@p_regionid=0
Run Code Online (Sandbox Code Playgroud)

从代码我传递参数,如

cmd.Parameters.Add("@p_latitude", SqlDbType.NVarChar).Value="''";
cmd.Parameters.Add("@p_longitude", SqlDbType.NVarChar).Value="''";
cmd.Parameters.AddWithValue("@p_miles",0);
cmd.Parameters.Add("@p_searchtext",SqlDbType.NVarChar).Value="''";
cmd.Parameters.AddWithValue("@p_maptownid",maptownid);
cmd.Parameters.AddWithValue("@p_regionid",0);
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误cannot convert navarchar to float.我试着以不同的方式发送null,string.empty.但是找不到它.

Run*_*tad 5

空字符串应该被传递""没有"''".撇号(')将作为字符串值传入,而不是作为字符串分隔符传入.错误消息表明您有一个传递nvarchar的float列.我怀疑@p_latitude和@p_longtitude参数是问题所在.尝试将值直接设置为DBNull.Value.