在sql server 2000 里要插入数据的字段类型为decimal为什么在表单里这项数据没填 会出现 “输入字符串的格式不正确”而随便填一个数字就不会报错在datagrid里点击更新按钮也一样----  下面是代码
private void tijiaogz_Click(object sender, System.EventArgs e)
{
SqlConnection sqlConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
try
{
string charu="INSERT INTO CGZGC (NYYBT, NYBB) VALUES (@yybt, @gzyybt)";
SqlCommand sqlCmd =new SqlCommand(charu,sqlConnection); sqlCmd.Parameters.Add("@yybt", System.Data.SqlDbType.Decimal, 13);
sqlCmd.Parameters.Add("@gzyybt", System.Data.SqlDbType.Decimal, 13); sqlCmd.Parameters["@yybt"].Value = yybt.Text;
sqlCmd.Parameters["@gzyybt"].Value = gzyybt.Text;

sqlCmd.Connection.Open();
sqlCmd.ExecuteNonQuery();
Message.Text="已经将职工工资数据加入数据库!请等待页面刷新.";
Response.Write("<meta http-equiv='refresh' content='3;url=addgrgz.aspx'>");
}
finally
{
sqlConnection.Close();
}
}还有 在sql server里 能用于数据统计的字段类型分别是哪些?哪些字段类型不能为空??

解决方案 »

  1.   

    第一个问题你设置sqlCmd.Parameters["@yybt"].Value = yybt.Text.ToString();
    sqlCmd.Parameters["@gzyybt"].Value = gzyybt.Text.ToString();
    这样看看不输入还出错吗?或者你里面设置了必须没项都输入内容
      

  2.   

    你要插入的数据是工资,应该把System.Data.SqlDbType.Decimal改成System.Data.SqlDbType.Money
      

  3.   

    都是数据 我想应该没区别吧,我记的是个防止空转换的问题 可是我搞不懂 网上的资料太模糊了
    设了Tostring不行 还是不输入的话会报错
      

  4.   

    还有你在设计字段的时候,右边SQL那里你有没有把那个钩给去掉了,也就是说这个字段必须是要输入数据的,你点“设计表”,查看一下
      

  5.   

    那没去掉 除了序号 和主键的字段 其他的都没去掉勾勾。判断什么 如果为text没填的话 这个值就自动为0吗? 这样不太好
      

  6.   

    还有你在设计字段的时候,右边SQL那里你有没有把那个钩给去掉了,也就是说这个字段必须是要输入数据的,你点“设计表”,查看一下
    =========================================引用
    要不你试试给个null看看
      

  7.   

    给null吗?不给0? 那我试试
      

  8.   

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

  9.   

    必须声明变量 '@yybt’。添上以后就成这样了 是我没写对吗?
      

  10.   

    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;
    }
      

  11.   

    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;
    }