要是我,我就写一个存储过程,只处理一个id,然后代码里面来一个循环,处理一组ID,也许效率会稍微差一点

解决方案 »

  1.   

    将这组数据保存到一个Table中,
    设定Table的InsertCommand
    然后,调用Table的Update就OK了
      

  2.   

    将这组数据保存到一个Table中,
    设定Table的InsertCommand
    然后,调用Table的Update就OK了同意
      

  3.   

    用SQL SERVER的用户自定义函数写个函数,作用是分解ID连结的字符串(比如“1|2|3|4|5|”),然后根据“|”号算出ID号总数。
    在存储过程中调用那个函数,根据求出的ID总数循环处理你需要的数据。
      

  4.   

    用dataset!
    参考:
    public bool SaveSpecialityOpinionF(DataTable Info)
    {
    bool InsertFlag = true;
    SqlConnection sqlcon  = new SqlConnection(Configuration.ConnectionString);
    sqlcon.Open();
    int mt = Info.Rows.Count;
    SqlTransaction oSqlTran =sqlcon.BeginTransaction();
    try
    {
    for(int i=0;i<Info.Rows.Count;i++)
    {
    InserSpecialityOpinionF(sqlcon,oSqlTran,
    Info.Rows[i]["dxgcbh"].ToString(),
    Info.Rows[i]["zymcid"].ToString(),
    Info.Rows[i]["opioion"].ToString(),
    Info.Rows[i]["result"].ToString(),
    Info.Rows[i]["userid"].ToString(),
    Info.Rows[i]["username"].ToString()
    );

    }
    oSqlTran.Commit();
    }
    catch(Exception e)
    {
    oSqlTran.Rollback();
    InsertFlag  = false;
    throw(e);
    }
    finally
    {
    sqlcon.Close();
    sqlcon = null;
    Info = null; }
    return InsertFlag;
    }
    #endregionpublic void InserSpecialityOpinionF(SqlConnection SqlConn,SqlTransaction sqlTrans,
    string vDxgcbh,string vZyid,string vOpinion,string Vscjl,string vUserID,string vUserName)
    {
    SqlCommand oSqlCom = new SqlCommand("AssinInserZYRY",SqlConn,sqlTrans);
    oSqlCom.CommandType = CommandType.StoredProcedure;
    oSqlCom.CommandText = "SpecialityOpinionInsertF";
    oSqlCom.Parameters.Add(new SqlParameter("@dxgcbh", SqlDbType.NVarChar, 20));
    oSqlCom.Parameters["@dxgcbh"].Value = vDxgcbh;
    oSqlCom.Parameters.Add(new SqlParameter("@zyid", SqlDbType.NVarChar, 20));
    oSqlCom.Parameters["@zyid"].Value = vZyid;
    oSqlCom.Parameters.Add(new SqlParameter("@userid", SqlDbType.NVarChar, 20));
    oSqlCom.Parameters["@userid"].Value = vUserID;
    oSqlCom.Parameters.Add(new SqlParameter("@opinion", SqlDbType.NVarChar, 20));
    oSqlCom.Parameters["@opinion"].Value = vOpinion;
    oSqlCom.Parameters.Add(new SqlParameter("@scjl", SqlDbType.NVarChar, 20));
    oSqlCom.Parameters["@scjl"].Value = Vscjl;
    oSqlCom.Parameters.Add(new SqlParameter("@cendate", SqlDbType.NVarChar, 20));
    oSqlCom.Parameters["@cendate"].Value = DateTime.Now;
    oSqlCom.Parameters.Add(new SqlParameter("@username", SqlDbType.NVarChar, 20));
    oSqlCom.Parameters["@username"].Value = vUserName;
    oSqlCom.ExecuteNonQuery();

    }