create proc proc_aa
@i int,
@d datetime ,
@s varchar(30),
@e varchar(30) out
as
begin
select * from a
endpublic void fun(int i, DateTime d, string s, string e)
    {
        int rowsAffected;
        SqlParameter[] parameters = {
new SqlParameter("@i", SqlDbType.Int,4),
new SqlParameter("@d", SqlDbType.DateTime),
new SqlParameter("@s", SqlDbType.NVarChar,30),
                    new SqlParameter("@e", SqlDbType.NVarChar,30)};
        parameters[0].Value = i;
        parameters[1].Value = d;
        parameters[2].Value = s;
        parameters[3].Value = e;
        UySQLHelp.DbHelperSQL.RunProcedure("proc_aa", parameters);
}
想执行只输入参数1,值为1,其他为null
fun(1,null,null,null)报错!
fun(1,DBNull.Value,DBNull.Value,DBNull.Value)也报错!
请教一下!谢谢

解决方案 »

  1.   

    e是输出参数,不能指定它的值吧,还要指定它的direction
      

  2.   

    好了,谢谢大家关注!.net版效率不太好啊,呵呵,还是sql版强!
      

  3.   

    再问个问题
    <add key="ConnectionStringuerp" value="server=10.10.1.1;database=erp;uid=erp;pwd=uerp123"/>
    加超时的设置的加个什么?
    谢谢
      

  4.   

    执行存储过程的超时到底是连接sql超时?
    还是存储过程超时了?感觉是第一个,因为在sql05里执行过程不会超时啊!
    大家给点意见!谢谢
      

  5.   

    command.CommandTimeout = 0;
    也不行啊?
      

  6.   

    new   SqlParameter("@e",   SqlDbType.NVarChar,30)}; 
    parameters[3].Direction = ParameterDirection.Output;
      

  7.   

    @i   int,
    @d   datetime   ,
    @s   varchar(30),
    @e   varchar(30)   out
    as 
    第2个是日期型
    考虑下改过程把