List<SqlParameter> para = new List<SqlParameter>();
para  为一个泛型变量.   
para.Add(new SqlParameter("@baozhshl", SqlDbType.Decimal, 14, ParameterDirection.Input,true, (byte)14, (byte)2,"baozhshl",DataRowVersion.Proposed,0));在执行过程中出现  ‘参数从String 型转换到 Decimal 出错’  , 我读取的是Excel的数据到DataTable,然后在把DataTable的数据插入到数据库,   出现这样的问题。请教...

解决方案 »

  1.   

    我就想问一下,参数有没有错。 这样一步就确定好参数的。   new SqlParameter("@baozhshl", SqlDbType.Decimal, 14, ParameterDirection.Input,true, (byte)14, (byte)2,"baozhshl",DataRowVersion.Proposed,0)
      

  2.   

    语法好像没有错误,看看你的参数吧。好像错了。
    "baozhshl" 这个东西好像不对啊。很明显字符串吗。
      

  3.   

    #5楼不懂不要乱说,那个地方没有错误。既然是“读取的是Excel的数据到DataTable”,那么就有可能数据在Excel就有问题了,比如某个数根本无法转换为Decimal,但是写在Excel里不会有问题,到了DataTable里也最多不使用Decimal类型存放,而自动使用String存放那个数据列。所以你那个列其实在DataTable里面,不是Decimal类型的,而是String类型的,你需要检查数据源。
      

  4.   

    存储的确实是以string类型来存储,但是全部是数字样式的格式。我是这样去给Sqlparameter赋值的,你看怎么样。
                        for (int j = 0; j < para.Count;j++ )
                        {
                            
                                para[j].Value = MyTable.Rows[i][j].ToString().Trim();
                            
                        }
      

  5.   

    那你就该把SqlDbType.Decimal改成SqlDbtype.string类型的呀,要不怎么往数据库里插
      

  6.   

    大哥我数据库里面的那些列是Decimal类型,我需要和数据一致啊!!!!!!  
      

  7.   

    数据类型转换错误,@baozhshl参数对应的不是数字型的,或者这个参数值传入是空的
      

  8.   

    首先你设置参数的方式可以直接这样写:para.Add(new SqlParameter("@baozhshl", 变量名称));
    呵护 。变量的值,如果为非数值型当然先要转换为数值型。如果转换失败,肯定是传入的参数有问题。 
      

  9.   

    这个参数在数据库绝对是数字类型的。而且我也给这个值参数了  ,这个不就是赋值吗?                    for (int j = 0; j < para.Count;j++ ) 
                        { 
                            
                                para[j].Value = MyTable.Rows[i][j].ToString().Trim(); 
                            
                        } 
      

  10.   

    我顶,,你数据库里是decimal类型的,,
    那你传入的参数值呢?什么类型??字符串??或者其他??晕了。。
    参数从String 型转换到 Decimal 出错’  提示都写这么清楚了呀,,你给要插入数据里的类型是什么类型?