日期:2014-05-17  浏览次数:20513 次

.NET代码 new SqlParameter("@tName", SqlDbType.VarChar, max)用什么取代max
namespace DAL
{
  public class dal_info_insert
  {
  public int addadminInfo(Info admin)
  {
  SqlParameter[] par = SqlHelper.GetCachedParameters("proc_insert_admin");
  if (par == null)
  {
  par = new SqlParameter[] { new SqlParameter ("@tName",SqlDbType .VarChar ,50),new SqlParameter ("@tDescription",SqlDbType .VarChar ,max),new SqlParameter ("@ret",SqlDbType .Int)};
  SqlHelper.CacheParameters("proc_insert_admin",par );
  }
  par[0].Value = admin.aname;
  par[1].Value = admin.PassWord;
  par[2].Direction = ParameterDirection.Output;
  SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "proc_insert_admin", par);
  return Convert.ToInt32(par [2].Value );
  }
  }
}
如果字段的大小varchar(max)时,new SqlParameter("@tDescription", SqlDbType.VarChar, max)提示max处错误,请问用什么替代?

------解决方案--------------------
cmd.Parameters.Add("@a", SqlDbType.VarChar).Value =“”

SqlDbType.NVarChar, -1); 

------解决方案--------------------
给楼上那些说4000、8000的人纠正下,varchar(MAX)或nvarchar(MAX),注意是MAX,绝不是你们所认为的nvarchar的最大长度,如果你定义的字段类型确为varchar(max)或nvarchar(max),写上长度,那就是-1,没二话,否则像他们所说的4000、8000,超出这个字符,提交到数据库岂不是截断,哪里符合nvarchar(MAX)所应有的长度!