RT 单个参数的我会 但是多个找了下网上实例代码 貌似都太麻烦  在asp里面执行多个参数的存储过程倒是蛮简单的 难道到了。net里面反而复杂了?

解决方案 »

  1.   

    cmd.Parameters.Add(参数名,SqlDbType.VarChar,4).Value=变量;
      

  2.   

    .NET把参数做成了参数集合,楼主依着:smallmaster(来自腐败机构FBI)的方法即可给执行添加多个参数.
    实现方式表面上比ASP复杂了点,但这样更科学!
      

  3.   

    http://community.csdn.net/Expert/topic/5586/5586585.xml?temp=.7846033
      

  4.   

    SqlParameter[] parameters = {
                    new SqlParameter("@fhaid",SqlDbType.UniqueIdentifier),
                    new SqlParameter("@archivesnum",SqlDbType.NVarChar ,30),
    new SqlParameter("@holdername", SqlDbType.NVarChar ,100),
                    new SqlParameter("@personnum", SqlDbType.Int ,4),
                    new SqlParameter("@familytype", SqlDbType.NVarChar ,50),
                    new SqlParameter("@telephone", SqlDbType.Char  ,20),
                    new SqlParameter("@town", SqlDbType.NVarChar ,50),
                    new SqlParameter("@village", SqlDbType.NVarChar ,50),
                    new SqlParameter("@country", SqlDbType.NVarChar ,50),
                    new SqlParameter("@creationdoctor", SqlDbType.NVarChar ,50),
                    new SqlParameter("@archivescreationdate", SqlDbType.DateTime),
                    new SqlParameter("@communityservice", SqlDbType.NVarChar ,100),
                    new SqlParameter("@creationdate", SqlDbType.NChar ,10),
    new SqlParameter("@lastupdatedate", SqlDbType.DateTime)
                        };
                parameters[0].Value = model.FHAID;
                parameters[1].Value = model.ArchivesNum;
                parameters[2].Value = model.HolderName;
                parameters[3].Value = model.PersonNum;
                parameters[4].Value = model.FamilyType;
                parameters[5].Value = model.Telephone;
                parameters[6].Value = model.Towm;
                parameters[7].Value = model.Village;
                parameters[8].Value = model.Country;
                parameters[9].Value = model.CreationDoctor;
                parameters[10].Value = model.ArchivesCreationDate;
                parameters[11].Value = model.CommunityService;
                parameters[12].Value = model.CreationDate;
                parameters[13].Value = model.LastUpdateDate;
      

  5.   

    很复杂么? public DataSet GetTopics(int forumID, int pageNumber, int pageSize)
    {
    SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
    SqlDataAdapter da = new SqlDataAdapter("sp_Forums_GetTopicsByPage", cn);
    da.SelectCommand.CommandType = CommandType.StoredProcedure;
    SqlParameter[] parameters = {
    new SqlParameter("@ForumID", SqlDbType.Int, 4),
    new SqlParameter("@PageNumber", SqlDbType.Int, 4),
    new SqlParameter("@PageSize", SqlDbType.Int, 4)
    };
    parameters[0].Value = forumID;
    parameters[1].Value = pageNumber;
    parameters[2].Value = pageSize; foreach (SqlParameter parameter in parameters)
    {
    da.SelectCommand.Parameters.Add(parameter);
    }

    DataSet ds = new DataSet();
    cn.Open();
    da.Fill(ds);
    cn.Close(); return ds;
    }
      

  6.   

    public int TestPageInsert(TestPageInfo test)
    {
    string sql = "s_TestPage_Insert";
    SqlCommand sqlcmd = new SqlCommand(sql,DwzxConfiguration.ConnectDB() ,DwzxConfiguration.SqlTran);
    sqlcmd.CommandType = CommandType.StoredProcedure;
    sqlcmd.Parameters.Add("@Title",SqlDbType.VarChar ,50).Value=test.Title ;
    sqlcmd.Parameters.Add("@starttime", SqlDbType.DateTime).Value = test.StartTime ;
    sqlcmd.Parameters.Add("@onenum",SqlDbType.Int ,4).Value=test.OneNum ;
    sqlcmd.Parameters.Add("@onestore",SqlDbType.Int ,4).Value=test.OneStore ;
    sqlcmd.Parameters.Add("@manynum",SqlDbType.Int ,4).Value=test.ManyNum ;
    sqlcmd.Parameters.Add("@manystore", SqlDbType.Int, 4).Value = test.ManyStore ;
    sqlcmd.Parameters.Add("@finishtime",SqlDbType.Int ,4).Value= test.FinishTime ;
    sqlcmd.Parameters.Add("@Questionlistid", SqlDbType.Int, 4).Value = test.Questionlistid;
    sqlcmd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int, 4).Direction = ParameterDirection.ReturnValue;

    sqlcmd.ExecuteNonQuery();
    int Flag = (int) sqlcmd.Parameters["@RETURN_VALUE"].Value;
    return Flag;
    }
      

  7.   

    代码是比asp要多了点,但是看起来很清楚也更科学的。
      

  8.   

    那是,还好我不是从ASP过渡的,不然以前的日子好苦喔,代码和设计在一个文件里搞定。
      

  9.   

    我就是从ASP过渡过来的
    每天累死累活的
     还不太习惯
      

  10.   

    我是不会asp,不过asp.net的参数传递没有如LZ想像中的那么复杂呀!哈哈
      

  11.   

    这个问题问的好奇怪啊单个参数会
    那多Add几个不就是多个参数了
      

  12.   

    搞那么复杂干嘛  直接传递sql执行不就行了。
    public int Execute(String strSql){
    SqlCommand Cmd = new SqlCommand(strSql, _Connection);
    try{
    return Cmd.ExecuteNonQuery();
    }catch(Exception e){
    _LastErrorInfo = e.Message;
    Error.Log(e.Message + "\n" + e.Source + "\n" + e.StackTrace);
    return 0;
    }
    }
      

  13.   

    nosuchtracter ,test是个结果集吗?这样赋值是怎么回事情?
      

  14.   

    amandag ,你写的这个调用存储过程干嘛需要适配器?直接Add不可以吗?请教。