怎么办:???
private void tijiaogz_Click(object sender, System.EventArgs e)
{

SqlConnection sqlConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);

try
{
string charu="INSERT INTO CGZGC (CZGBM, CGXM, CDWBM, NJCGZ) VALUES (@zgbm, @zgxm, @dwbm, @jcgz)";
SqlCommand sqlCmd =new SqlCommand(charu,sqlConnection);
sqlCmd.Parameters.Add("@zgbm", System.Data.SqlDbType.NChar, 10);
sqlCmd.Parameters.Add("@zgxm", System.Data.SqlDbType.Text);
sqlCmd.Parameters.Add("@dwbm", System.Data.SqlDbType.NChar, 10);
sqlCmd.Parameters.Add("@jcgz", System.Data.SqlDbType.Decimal, 13);

sqlCmd.Parameters["@zgbm"].Value = zgbm.Text;
sqlCmd.Parameters["@zgxm"].Value = zgxm.Text;
sqlCmd.Parameters["@dwbm"].Value = dwbm.Text;
sqlCmd.Parameters["@jcgz"].Value = jcgz.Text;
sqlCmd.Connection.Open();
sqlCmd.ExecuteNonQuery();
Message.Text="已经加入数据库!请等待页面刷新.";
Response.Write("<meta http-equiv='refresh' content='3;url=addgrgz.aspx'>");

}
finally
{
sqlConnection.Close();
}
}
但是当NJCGZ没有什么数据的时候 (数据库里的该字段可以为空)也就是用户没有填这一栏的时候就会出现“输入字符串的格式不正确”在datagrid中更新数据的时候也是一样 把原来的有数据的改成空的就会出同样的错了
该怎么办?????没填数据的时候不会出错??? 请知道的老哥写清楚一点啊,我是新人

解决方案 »

  1.   

    简单点(在有些地方可能不太好这样用)
    就是用空字符串代替空值(null的地方用""代替。)建议程序这样的地方多try-catch。
      

  2.   

    if(jcgz.Text.Trim() =="")
    {
    sqlCmd.Parameters.Add("@jcgz", System.Data.SqlDbType.Decimal, 13);
    sqlCmd.Parameters["@jcgz"].Value = System.DBNull.Value;
    }
    if(jcgz.Text.Trim() !="")
    {
    sqlCmd.Parameters.Add("@jcgz", System.Data.SqlDbType.Decimal, 13);
    sqlCmd.Parameters["@jcgz"].Value = jcgz.Text;
    }
      

  3.   

    可以做一下判断:
    if(jcgz.Text.Trim() !="") 
    {charu="INSERT INTO CGZGC (CZGBM, CGXM, CDWBM, NJCGZ) VALUES (@zgbm, @zgxm, @dwbm, @jcgz)";
    }
    else
    charu="INSERT INTO CGZGC (CZGBM, CGXM, CDWBM) VALUES (@zgbm, @zgxm, @dwbm)";
    参数也稍稍修改(少一个)不说你也知道撒