在程序中我定义了一个int result=执行存储过程的返回直,
它说我这句错了,对象没有实例化.

解决方案 »

  1.   

    用ExecuteN....果个,后面的字母我吾记得啦!
    ExecuteReader是用于有SELECT语句!
      

  2.   

    ExecuteScalar 返回第一行第一列的值,是個object對象. 如果sp執行的結果一定返回某個值
    的話. 那麼你要檢查下command對象是否實例化了.
      

  3.   

    如果要捕捉返回变量的话需要创建一个返回参数对象
    如:
    SqlParameter parReturn=cmd.Parameter.Add("ReturnValue",SqlDbType.Int);
    ///cmd是SqlCommand的对象
    parReturn.Direction=ParameterDirection.ReturnValue;当然应该使用cmd.ExecuteScalar();方法
    因为cmd.ExecuteReader()返回的是表对象的行和列
    然后如果要显示返回值的话
    可以
    txtReturnValue.Text=Convert.ToString(parReturn.Value);                                           wish u good luck
                                                     Greatsft
      

  4.   

    ExecuteNonQuery返回影響到的row的數量
      

  5.   

    sel.CommandText="SELECT * FROM * WHERE *";
    object aaa=sel.ExecuteScalar();
    if(aaa!=null)
    {
    }
    我是这样做的,运行正常
      

  6.   

    在程序中我定义了一个int result=执行存储过程的返回值SqlCommand cmd = new SqlCommand("存储过程名称",conn);
    cmd.CommandType = CommandType.StoredProcedure;SqlParameter parReturn=cmd.Parameter.Add("ReturnValue",SqlDbType.Int);
    ///cmd是SqlCommand的对象
    parReturn.Direction=ParameterDirection.ReturnValue;
      

  7.   

    同意 greatsft(C的使者)和wangsaokui(无间道II(前传))
      

  8.   

    SqlCommand cmd = new SqlCommand(strSql,sqlConn1);
    cmd.ExecuteNonQuery();
      

  9.   

    CREATE PROCEDURE  EDENTIFY1  @doctor_ID char(20),@keshi char(20),@password char(10)
     AS
    IF  (EXISTS(select* from  医生信息表  where @doctor_ID=[doctor ID]  AND  @password=[password]  AND  @keshi=@keshi)  )
    RETURN(1)
    ELSE
    RETURN(0)
    GO
    这是我的存储过程,我并不是用输出型参数控制程序流程,而是过程的返回直,各位高手帮我看看.