在.net中调用存储过程怎么写,求高人给发个例子.谢谢!

解决方案 »

  1.   

    public static DataSet GetActivityListByRegarding(string UserID,int EntityType,string EntityID)
    {
    string sql="tp_Fetch_Entity_Activity";
    System.Data.SqlClient.SqlParameter[] p=new SqlParameter[3];
    p[0]=new SqlParameter();
    p[0].ParameterName ="@UserID";
    p[0].Value =UserID; p[1]=new SqlParameter();
    p[1].ParameterName ="@EntityType";
    p[1].Value =EntityType;
    p[1].DbType=System.Data.DbType.Int32; p[2]=new SqlParameter();
    p[2].ParameterName ="@EntityID";
    p[2].Value =EntityID;
    DataSet ds=DataHelper.ExecuteDatasetBySpName(sql,p);
    return ds;
    }
      

  2.   

    SqlDataAdapter da=new SqlDataAdapter("过程名","Server=localhost; user id=sa; pwd=; database=northwind");
    da.SelectCommand.CommandType=CommandType.StoredProcedure;
    da.SelectCommand.Parameters.Add("@参数1",SqlDbType.数据类型);
    da.SelectCommand.Parameters["@参数2"].Value=?;
    da.SelectCommand.Parameters.Add("@参数2",SqlDbType.数据类型);
    da.SelectCommand.Parameters["@参数2"].Value=?;
    DataSet ds=new DataSet();
    da.Fill(ds);
    或者使用SqlConnection+SqlCommand
    SqlConnection con=new SqlConnection("Server=localhost; user id=sa; pwd=; database=northwind");
    SqlCommand cmd=new SqlCommand(sql,con);
    cmd.CommandType=CommandType.StoredProcedure;
    cmd.Parameters.Add("@参数1",SqlDbType.数据类型);
    cmd.Parameters["@参数"].Value=?;
    SqlDataReader dr=cmd.ExecuteReader();
    .................
    dr.Close();
    con.Close()
      

  3.   

    #region 有参数存储过程创建SqlCommand对象
    public SqlCommand BuildSqlCommand (string procedure_name , IDataParameter[] parameters)
    {
    try
    {
    cmd = new SqlCommand (procedure_name , conn);
    cmd.CommandType = CommandType.StoredProcedure;
    foreach (SqlParameter parameter in parameters)
    {
    cmd.Parameters.Add (parameter);
    }
    return cmd;
    }
    catch (Exception error)
    {
    throw error;
    }
    }
    #endregion#region 运行存储过程(INSERT、UPDATE、DELETE),返回成功行数
    public int RunProcedure (string procedure_name , IDataParameter[] parameters)
    {
    int rows_count;
    try
    {
    if(conn.State == ConnectionState.Closed)
    {
    conn.Open();
    }
    cmd = this.BuildSqlCommand(procedure_name , parameters);
    rows_count = cmd.ExecuteNonQuery();
    return rows_count;
    }
    catch(Exception error)
    {
    throw error;
    }
    finally
    {
    conn.Close();
    }
    }
    #endregion
      

  4.   

    public int Add(string dcname)
    {
    SqlCommand cmd = new SqlCommand("DCAdd",this.conn);
    cmd.CommandType = CommandType.StoredProcedure;

    SqlParameter parameterDCName = new SqlParameter("@DCName",SqlDbType.VarChar,20);
    parameterDCName.Value = dcname;
    cmd.Parameters.Add(parameterDCName); SqlParameter parameterSuccessFlag  = new SqlParameter("@SuccessFlag",SqlDbType.Int,4);
    parameterSuccessFlag .Direction = ParameterDirection.Output;
    cmd.Parameters.Add(parameterSuccessFlag );

    this.conn.Open();
    cmd.ExecuteNonQuery();
    this.conn.Close();

    int SuccessFlag = Convert.ToInt32(parameterSuccessFlag.Value);
    return SuccessFlag;
    }
      

  5.   

    CommandText="exec 存储过程名 '"& a &"','"& b &"','"& c &"','"& d &"';" 
    'a,b,c,d为该存储过程需要的四个参数
    '注意:这里的cmd.CommandType 使用默认值,即cmd.CommandType = CommandType.Text;
    '而不是CommandType.StoredProcedure
            
    cmd.ExecuteNonQuery(sql)
      

  6.   

    更正:CommandText="exec 存储过程名 '"& a &"','"& b &"','"& c &"','"& d &"';" 
    'a,b,c,d为该存储过程需要的四个参数
    '注意:这里的cmd.CommandType 使用默认值,即cmd.CommandType = CommandType.Text;
    '而不是CommandType.StoredProcedure
     cmd.ExecuteNonQuery()      
    'cmd.ExecuteNonQuery(sql)这句改为cmd.ExecuteNonQuery()
      

  7.   

    用sqlhelper
    SqlHelper.方法("数据连接","存储过程名",参数1,参数2.......参数N)