私は分析し、Windowsサービスアプリケーションを作成しています。リストAddRangeを使用して重複値を削除するにはどうすればいいですか? C#
私はInsertクエリを作成するとき、私はList<SqlParameter>
とAddRangeを使用して列を追加します。
List<SqlParameter> pmlist = new List<SqlParameter>(keys);
行には、{@DeptCode}が含まれています。
次にpmlist.AddRange(pms);
行、pmsパラメータが追加されました。私は以前pmslistを述べた
バスはすでに{@DeptCode}
を持っているので、この
pmlist = [0] {@DeptCode} [1] {@DeptCode} [2] {@DeptName}
[3] {@ParentDeptName} [4] {@ParentDeptCode} [5] {@DeptLevel}
DeptCodeのような値が複製されていpmlist。したがって、ShadowDeptTableにクエリを挿入しようとすると、
また、5つの列があり、SQL例外が発生しました。
重複した値を削除する方法と削除する方法はありますか?助けてください...
コードは以下のとおりです。
//table : ShadowDeptTable , keys = {@DeptCode},
//pms = [0] {@DeptCode} [1] {@DeptName} [2] {@ParentDeptName}
// [3] {@ParentDeptCode} [4] {@DeptLevel}
public static int InsertOrUpdate(string table, SqlParameter[] keys, params SqlParameter[] pms)
{
int st = 0;
string constr = Util.GetPropVal(Words.PropConnectionString);
var obj = SqlHelper.ExecuteScalar(constr,CommandType.Text,sb.ToString(),keys);
StringBuilder sb=new StringBuilder();
sb = sb.Append("insert into " + table + "(");
//columns
string cols = null;
//values
string vals = null;
List<SqlParameter> pmlist = new List<SqlParameter>(keys);
pmlist.AddRange(pms);
cols = string.Join(",", pmlist.Select(a => "["+a.ParameterName.Substring(1, a.ParameterName.Length-1)+"]"));
vals = string.Join(",", pmlist.Select(a => "'" + a.Value + "'"));
sb = sb.Append(cols);
sb = sb.Append(") values(");
sb = sb.Append(vals);
sb = sb.Append(")");
obj = SqlHelper.ExecuteScalar(constr, CommandType.Text, sb.ToString());
return Convert.ToInt32(obj);
}
ありがとうkat1330を使用してみてください。それはうまくいく!本当に役に立つアドバイスです。 :) –