Excelファイルを読み取るC#WebアプリケーションでXMLに変換してストアドプロシージャを実行し、セカンダリアップデートを実行するために必要な特定のフォーマットのデータセットを返します。データセットは18000 +レコードを返します。データセットに値が設定されたら、ループしてWebサービスを呼び出し、アプリケーションデータベースの更新を実行します。私の質問は、小規模なバッチでも小さなブロックでも、プログレスバーを使ってもこのアップデートを実行する方法です。これは、Webサービスを呼び出すと、あなたは、バックエンドのスレッドでこれらすべてのものを行うと、ちょうどそれをXMLを渡し、スレッドを呼び出し、ユーザーを終了するメッセージを返すことができ、更新にWebservicesを使用したバッチ処理データセット - C#
public string InvokeSubmitCalendarValues()
{
try
{
DataWebService dataWebService = new DataWebService();
SubmitCalendarValuesRequest submitCalendarValuesRequest = new SubmitCalendarValuesRequest();
Credentials credentials = new Credentials();
credentials.Username = AmplaCodeUserName;
credentials.Password = AmplaCodeUserPassword;
credentials.Session = "";
submitCalendarValuesRequest.Credentials = credentials;
string rateUnit = "";
if (ds != null && ds.Tables.Count > 0)
{
foreach (DataTable dt in ds.Tables)
{
foreach (DataRow dr in dt.Rows)
{
SubmitCalendarValue[] values = new SubmitCalendarValue[1];
SubmitCalendarValue values_ = new SubmitCalendarValue();
values_.Name = dr["ItemName"].ToString();
values_.Value = dr["ItemValue"].ToString();
// Init DateTime object value = 2017-08-06T00:00:00.0000000+02:00
// We going to use DateTime ctor that takes Ticks
values_.StartDateTime = new System.DateTime(Convert.ToDateTime(dr["ActiveDateTime"]).Ticks);
if (dr["PeriodType"].ToString() != string.Empty || !(dr["Period"] is DBNull))
{
CalendarRate rate = new CalendarRate();
rateUnit = dr["PeriodType"].ToString();
rate.Count = Convert.ToInt32(dr["Period"]);
CalendarRateUnit cru = (CalendarRateUnit)Enum.Parse(typeof(CalendarRateUnit), rateUnit);
rate.Unit = cru;
values_.Rate = rate;
}
values[0] = values_;
submitCalendarValuesRequest.Values = values;
SubmitCalendarValuesResponse submitCalendarValuesResult = dataWebService.SubmitCalendarValues(submitCalendarValuesRequest);
}
}
}
}
catch(Exception ex)
{
return ex.Message.ToString();
}
return "Success";
}
私はこのすべてをバックエンド経由で処理していましたが、すべてを変更してWebサービスを使用しなければならないことを追加する必要があります –