又遇到了一个貌似挺简单的有关问题,求解

又遇到了一个貌似挺简单的问题,求解
我在窗体上设置了一个 TextBox,用于填写身高,最后这个数据会保存入数据库,
首先,在KaoShengXinXi这个实体类定义了
  private int? _shengao;
 public int? ShenGao
 {
  set { _shengao = value; }
  get { return _shengao; }
 }
在UI层代码如下,
if (txt_Height.Text != "")
  KaoShengXinXi.ShenGao = int.Parse(txt_Height.Text.ToString().Trim());
else 
  KaoShengXinXi.ShenGao = null;
在DAL层代码大概如下,
  myDictionary.Add("ShenGao", new SqlParameter("@ShenGao", SqlDbType.Int));
  myDictionary["ShenGao"].Value = kaoshengguanli_xinxi.ShenGao;
利用存储过程存数据进入数据库,调试时我没有输入数据,结果...
过程或函数 'BK_KaoShengXinXi_TBInsert' 需要参数 '@ShenGao',但未提供该参数。
但是这个数据并不是必填的啊,好郁闷,有能解答的吗?

------解决方案--------------------
要不然修改你的存储过程,要不然在程序中传一个值。
------解决方案--------------------
建议还是修改你的存储过程吧,把参数身高的默认值设置为默认值,然后在sql时加个判断
------解决方案--------------------
给它一个默认初始值呗~
------解决方案--------------------
你可以传一null值