本帖最后由 wosliuxiang 于 2010-08-25 10:21:32 编辑

解决方案 »

  1.   


            SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=test");
            conn.Open();
            string sqlStr = "getlist";
            SqlCommand comm = new SqlCommand(sqlStr, conn);
            comm.CommandType = CommandType.StoredProcedure;
            SqlParameter tableName = new SqlParameter("@Tables", SqlDbType.VarChar, 200);
            tableName.Value = "mess";
            comm.Parameters.Add(tableName);
            using (SqlDataReader sqldatar = comm.ExecuteReader())
            {
                Response.Write(sqldatar.HasRows.ToString());
            }那我这么做是不是不对呢?
      

  2.   

    要不改成这样试试:SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=test");
            conn.Open();
            string sqlStr = "exec getlist";        SqlCommand comm = new SqlCommand(sqlStr, conn);
            comm.CommandType = CommandType.StoredProcedure;
            SqlParameter tableName = new SqlParameter("@Tables", SqlDbType.VarChar, 200);
            tableName.Value = "mess";
            comm.Parameters.Add(tableName);
            using (SqlDataReader sqldatar = comm.ExecuteReader())
            {
                Response.Write(sqldatar.HasRows.ToString());
            }
      

  3.   

    还有一种:
    (1)执行一个没有参数的存储过程的代码如下: SqlConnection conn=new SqlConnection(“connectionString”); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    da.selectCommand = new SqlCommand(); 
    da.selectCommand.Connection = conn; 
    da.selectCommand.CommandText = "NameOfProcedure"; 
    da.selectCommand.CommandType = CommandType.StoredProcedure; 
    (2)执行一个有参数的存储过程的代码如下SqlConnection conn=new SqlConnection(“connectionString”); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    da.selectCommand = new SqlCommand(); 
    da.selectCommand.Connection = conn; 
    da.selectCommand.CommandText = "NameOfProcedure"; 
    da.selectCommand.CommandType = CommandType.StoredProcedure; 
    param = new SqlParameter("@ParameterName", SqlDbType.DateTime); 
    param.Direction = ParameterDirection.Input; 
    param.Value = Convert.ToDateTime(inputdate); 
    da.selectCommand.Parameters.Add(param); 
    若需要添加输出参数: param = new SqlParameter("@ParameterName", SqlDbType.DateTime); 
    param.Direction = ParameterDirection.Output; 
    param.Value = Convert.ToDateTime(inputdate); 
    da.selectCommand.Parameters.Add(param); 
    若要获得参储过程的返回值: param = new SqlParameter("@ParameterName", SqlDbType.DateTime); 
    param.Direction = ParameterDirection.ReturnValue; 
    param.Value = Convert.ToDateTime(inputdate); 
    da.selectCommand.Parameters.Add(param); 
      

  4.   

    7楼,你的代码没啥问题,但是结尾必须conn.Close();
    建议你学习哥的代码风格 protected bool IfCustomerVisitSuccess(string customerID,string taskID)
        {
            bool flag = false;
            using (OracleConnection connection = new OracleConnection(ConfigurationManager.ConnectionStrings["DVTeConnectionString"].ToString()))
            {
                string sql = " select count(*) from DC_VISITUSER where CUSTOMERID=" +                         customerID;
                sql += " and TASKID=" + taskID;
                sql += " and RESULT=1"; 
                connection.Open();
                OracleCommand command = connection.CreateCommand();
                command.CommandText = sql;            if (command.ExecuteOracleScalar() == null)
                {
                    return flag;
                }
                if (int.Parse(command.ExecuteOracleScalar().ToString()) > 0)
                {
                    flag = true;
                }
            }
            return flag;
        }
      

  5.   

    在sql上面执行下存储过程看查的出来不,代码没问题
      

  6.   

    回8楼:这样我试过了没有用  comm.CommandType = CommandType.Text;这个要改  不然会报错  回10楼:这些我都知道的回11楼:谢谢啦,不过我这个是测试用的
      

  7.   

    1.把存储过程写成SQL语句,
    2.设置断点,看sql语句
    3.在数据库了运行一下就知道有没有值了