我写了一个存储过程,里面有@strMessage varchar(100) output 和20个传进数据值和一个判断状态值@strFLAG,我现在有20个栏位,想要去接收里面的20个数据,问如何写个方法得到?这个存储过程是修改新增删除功能。要通过输入的@strFLAG判断是修改还新增,删除.如果是新增,要实现把20个栏位的TEXT值传进数据库.公司的那个方法封装了,我老是调用出错,想自己写个

解决方案 »

  1.   

    用Microsoft.ApplicationBlocks.Data.dll
      

  2.   

    用Microsoft.ApplicationBlocks.Data.dllpublic int InsIndoorLayout(string strIndoorName,string strInvestigateMoney,string strSiteAmount,string strGsmCdmaAmount,string strCooperateCompany,string strContractNo,string strContractMoney,string strAuditMoney,string strPaidMoney,string strUnpaidMoney,string strCheckFlag,string strRe) 

    //string strDSN; 
    string strSP; 
    int intCount; 

    //strDSN = "server=TESTSERVER;uid=sa;pwd=123;database=BaseStation"; 
    strSP = "ins_indoor_layout_contract_ct"; 
    strSP = "ins_indoor_layout_contract_ct";  SqlParameter[] arParms = new SqlParameter[12];  arParms[0] = new SqlParameter("@indoor_name", SqlDbType.VarChar, 100); 
    arParms[1] = new SqlParameter("@investigate_money", SqlDbType.VarChar, 30); 
    arParms[2] = new SqlParameter("@site_amount", SqlDbType.VarChar, 10); 
    arParms[3] = new SqlParameter("@gsm_cdma_amount", SqlDbType.VarChar, 10); 
    arParms[4] = new SqlParameter("@cooperate_company", SqlDbType.VarChar, 100); 
    arParms[5] = new SqlParameter("@contract_no", SqlDbType.VarChar, 50); 
    arParms[6] = new SqlParameter("@contract_money", SqlDbType.VarChar, 30); 
    arParms[7] = new SqlParameter("@audit_money", SqlDbType.VarChar, 30); 
    arParms[8] = new SqlParameter("@paid_money", SqlDbType.VarChar, 30); 
    arParms[9] = new SqlParameter("@unpaid_money", SqlDbType.VarChar, 30); 
    arParms[10] = new SqlParameter("@check_flag", SqlDbType.VarChar, 10); 
    arParms[11] = new SqlParameter("@re", SqlDbType.VarChar, 200);  arParms[0].Value = strIndoorName; 
    arParms[1].Value = strInvestigateMoney; 
    arParms[2].Value = strSiteAmount; 
    arParms[3].Value = strGsmCdmaAmount; 
    arParms[4].Value = strCooperateCompany; 
    arParms[5].Value = strContractNo; 
    arParms[6].Value = strContractMoney; 
    arParms[7].Value = strAuditMoney; 
    arParms[8].Value = strPaidMoney; 
    arParms[9].Value = strUnpaidMoney; 
    arParms[10].Value = strCheckFlag; 
    arParms[11].Value = strRe; intCount = SqlHelper.ExecuteNonQuery(strDSN, CommandType.StoredProcedure, strSP, arParms); 

    return intCount; 
    }  public int UpdIndoorLayout(string strID,string strIndoorName,string strInvestigateMoney,string strSiteAmount,string strGsmCdmaAmount,string strCooperateCompany,string strContractNo,string strContractMoney,string strAuditMoney,string strPaidMoney,string strUnpaidMoney,string strCheckFlag,string strRe) 
    {  //string strDSN; 
    string strSP; 
    int intCount; 

    //strDSN = "server=TESTSERVER;uid=sa;pwd=123;database=BaseStation"; 
    strSP = "upd_indoor_layout_contract_ct";  SqlParameter[] arParms = new SqlParameter[13];  arParms[0] = new SqlParameter("@id", SqlDbType.VarChar, 10);
    arParms[1] = new SqlParameter("@indoor_name", SqlDbType.VarChar, 100); 
    arParms[2] = new SqlParameter("@investigate_money", SqlDbType.VarChar, 30); 
    arParms[3] = new SqlParameter("@site_amount", SqlDbType.VarChar, 10); 
    arParms[4] = new SqlParameter("@gsm_cdma_amount", SqlDbType.VarChar, 10); 
    arParms[5] = new SqlParameter("@cooperate_company", SqlDbType.VarChar, 100); 
    arParms[6] = new SqlParameter("@contract_no", SqlDbType.VarChar, 50); 
    arParms[7] = new SqlParameter("@contract_money", SqlDbType.VarChar, 30); 
    arParms[8] = new SqlParameter("@audit_money", SqlDbType.VarChar, 30); 
    arParms[9] = new SqlParameter("@paid_money", SqlDbType.VarChar, 30); 
    arParms[10] = new SqlParameter("@unpaid_money", SqlDbType.VarChar, 30); 
    arParms[11] = new SqlParameter("@check_flag", SqlDbType.VarChar, 10); 
    arParms[12] = new SqlParameter("@re", SqlDbType.VarChar, 200); 
    arParms[0].Value = strID; 
    arParms[1].Value = strIndoorName; 
    arParms[2].Value = strInvestigateMoney; 
    arParms[3].Value = strSiteAmount; 
    arParms[4].Value = strGsmCdmaAmount; 
    arParms[5].Value = strCooperateCompany; 
    arParms[6].Value = strContractNo; 
    arParms[7].Value = strContractMoney; 
    arParms[8].Value = strAuditMoney; 
    arParms[9].Value = strPaidMoney; 
    arParms[10].Value = strUnpaidMoney; 
    arParms[11].Value = strCheckFlag; 
    arParms[12].Value = strRe;

    intCount = SqlHelper.ExecuteNonQuery(strDSN, CommandType.StoredProcedure, strSP, arParms); 

    return intCount;  } public int DelIndoorLayout(string strID) 
    {  //string strDSN; 
    string strSP; 
    int intCount; 

    //strDSN = "server=TESTSERVER;uid=sa;pwd=123;database=BaseStation"; 
    strSP = "del_indoor_layout_contract_ct";  SqlParameter[] arParms = new SqlParameter[1];  arParms[0] = new SqlParameter("@id", SqlDbType.VarChar, 10);
    arParms[0].Value = strID; 


    intCount = SqlHelper.ExecuteNonQuery(strDSN, CommandType.StoredProcedure, strSP, arParms); 

    return intCount;  }
      

  3.   

    Microsoft.ApplicationBlocks.Data.dll
    微软早帮你写好了啊
      

  4.   

    c#调用存储过程很简单SqlCommand.Parameter.add("@name","123")
    这样就行了
      

  5.   

    用啥來接數據庫裏的數據呢?DATASET?然後又怎麽把接收到的數據傳給各個欄位呢?