是执行cmd.ExecuteNonQuery ();
时出错吗,如果是就说明存储过程有问题。

解决方案 »

  1.   

    没有,换种写法
    就是这样
    sqlparamter p1=new SqlParameter ("@lcid",System.Data.SqlDbType.VarChar,10);
    p1.value=Lcid;
    cmd.paramters.add(p1);cmd.executenonquery();
    就没事了
      

  2.   

    string sql_string="execute <存储过程名> '"+<参数一>+"','"+<参数二>+"','"+<参数...>+"'"
    然后直接执行此查询语句即可
    不必用上面的方法!
      

  3.   

    cmd.Parameters.Add (new SqlParameter ("@cjid",System.Data.SqlDbType.VarChar,10,Cjid));
    你给了VarChar类型10个长度,不知道算不算错!
      

  4.   

    你的用法有问题,语法错了,以下的这个构造函数中的最后一个参数string的值不是你的value,而是代表源列的名称。
    public SqlParameter(string, SqlDbType, int, string);
    如下:
    public SqlParameter(string parameterName, SqlDbType dbType, int size, string sourceColumn);
    参数
    parameterName 
    要映射的参数的名称。 
    dbType 
    SqlDbType 值之一。 
    size 
    参数的长度。 
    sourceColumn 
    源列的名称。 
    正确的用法你要改成如下:
    SqlParameter pCjid = new SqlParameter("@cjid",System.Data.SqlDbType.VarChar,10,Cjid);
    Cjid.Value = Cjid;
    cmd.Parameters.Add (pCjid);
    .....也就是说没有把Value直接放到参数的像你那样的用法.
      

  5.   

    cmd.Parameters.Add (new SqlParameter ("@cjid",System.Data.SqlDbType.VarChar,10,Cjid));
    你给了VarChar类型10个长度,不知道算不算错!
    :)这个是没有错的
      

  6.   

    正确的用法你要改成如下:
    SqlParameter pCjid = new SqlParameter("@cjid",System.Data.SqlDbType.VarChar,10,Cjid);
    Cjid.Value = Cjid;
    cmd.Parameters.Add (pCjid);
    .....也就是说没有把Value直接放到参数的像你那样的用法.我不知道你看MSDN没有,它的最后一个参数就是VALUE
    我现在不明白为什么会出错,出在那里了??正确的写法(不要改太多,像你写的方法我已实现了)是什么
      

  7.   

    楼主:人家给你热心的回了帖也不置可否,给你指出了问题所在也不说试试,是不是不想解决问题啊!
    SqlParameter("@cjid",System.Data.SqlDbType.VarChar,10,Cjid)这个用法不合适,按你的帖子的意思Cjid是一个值,而不是一个列的名字,因此你不能用这个构造函数来生成一个新的参数加到cmd.Parameters里.
      

  8.   

    那请你把那个函数的声明帖出来我看看,在我的.NET里,如果按参数来说是如下的,而你的我确找不到有那样的用法:
    public SqlParameter(string parameterName, SqlDbType dbType, int size, string sourceColumn);
    参数说明:
    parameterName 要映射的参数的名称。 
    dbType        SqlDbType 值之一。 
    size          参数的长度。 
    sourceColumn  源列的名称。 
      

  9.   

    cmd.Parameters.Add("@cjid",System.Data.SqlDbType.VarChar,10).Value=Cjid;
    这样写是对的,你这样改吧.