比如我有一个函数执行存储过程
ExcuteSP(string spname,Parameter[]para)
{}
上面那个Parameter要怎么使用啊?
如何先把参数都添加到一个Para里面,然后又如何都添加给存储过程的参数传入。

解决方案 »

  1.   

         string _SqlCommand = "Select * form Table Where id=@id and name=@name";
                System.Data.SqlClient.SqlParameter[] _Paramert = new SqlParameter[]
                {
                    new SqlParameter("@id",SqlDbType.Int),
                    new SqlParameter("@name",SqlDbType.VarChar,20)
                };            _Paramert[0].Value = 1;
                _Paramert[0].Value = "Name";
    ExcuteSP(_SqlCommand,_Paramert) 
      

  2.   


            public void ModifyUser(PersonInfo per)
            {
                SqlParameter[] modifyUserPara = new SqlParameter[]{                          
                    new SqlParameter(PARM_USER_ID,SqlDbType.VarChar,20),
                    new SqlParameter(PARM_PASSWORD,SqlDbType.VarChar,20),
                    new SqlParameter(PARM_NAME,SqlDbType.VarChar,40),
                    new SqlParameter(PARM_POSITION,SqlDbType.Char,4),
                    new SqlParameter(PARM_PHONE,SqlDbType.VarChar,20),
                    new SqlParameter(PARM_EMAIL,SqlDbType.VarChar,80),             
                    new SqlParameter(PARM_STATUS,SqlDbType.VarChar,4)};            modifyUserPara[0].Value = per.Id;
                modifyUserPara[1].Value = per.Password;
                modifyUserPara[2].Value = per.Name;
                modifyUserPara[3].Value = per.Position;
                modifyUserPara[4].Value = per.Phone;
                modifyUserPara[5].Value = per.Email;
                modifyUserPara[6].Value = per.Status;
                helper.UpdateSQL(PROC_MODIFY_USER, modifyUserPara);
            }
      

  3.   

         string SelectSQL = "select * from customers where customerid=@customerid";
         SqlCmd.Connection = SqlConn;
         SqlCmd.CommandText = SelectSQL;
         SqlCmd.Parameters.Add("@customerid", SqlDbType.NVarChar, 50).Value="值";
      

  4.   

     System.Data.SqlClient.SqlParameter[] Paramers = new SqlParameter[] 
                { 
                    new SqlParameter("@id",SqlDbType.Int), 
                    .....
                }; Paramers [0].Value = 1; 
    //.....将Paramers构造好后当参数传递给ExcuteSP就行了
      

  5.   

            private static void AttachParameters(SqlCommand comm, SqlParameter[] commandParameters)
            {
                if (comm == null) { throw new ArgumentNullException("comm"); }
                if (commandParameters != null)
                {
                    foreach (SqlParameter p in commandParameters)
                    {
                        if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Output) && p.Value == null)
                        {
                            p.Value = DBNull.Value;
                        }
                        comm.Parameters.Add(p);
                    }
                }
            }
      

  6.   

     public static int ExecuteSql(String Sqlstr, OleDbParameter[] param)
        {
            String ConnStr = OleDbHelper.GetSqlConnection();
            using (OleDbConnection conn = new OleDbConnection(ConnStr))
            {
                OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = conn;
                cmd.CommandText = Sqlstr;
                cmd.Parameters.AddRange(param);
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
                return 1;
            }
        }
      

  7.   

     public int ExcuteCommand(string sql, params OleDbParameter[] param)
            {
                OleDbConnection dbconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + strDBpath);
                try
                {
                dbconn.Open();
                    OleDbCommand cmd = new OleDbCommand(sql, dbconn);                cmd.Parameters.AddRange(param);
                    
                    int result = cmd.ExecuteNonQuery();                return result;
                }
                catch
                {
                    return -1;
                }
                finally
                {
                    dbconn.Close();
                }
            }调用上面的方法: Result = DBHelps.ExcuteCommand(strSql, new OleDbParameter("@UserName", UI.UserName), new OleDbParameter("@Pwd", UI.Pwd));