0
کمک فور درمورد سی شارپ حرفه ای
ایم مشکلش چی است
public int Update(TEntity entites) { var query = new StringBuilder("update [" + schema + "].[" + tableName + "]"); var nonComputedkeycolums = ProprtyModels.Where(p => !p.IsComputed); var primerykey = ProprtyModels.Where(pro => pro.IsprimaryKay); List<SqlParameter> parmeters = new List<SqlParameter>(); var valuconter = 1; List<string> updetstetment = new List<string>(); foreach (var model in nonComputedkeycolums) { updetstetment.Add("[" + model.ColumnName + "]= @value " + valuconter); parmeters.Add(new SqlParameter("Value" + valuconter++, model.PropertyInfo.GetValue(entites))); } query.Append("set " + string.Join(",",updetstetment)); List<string> whereparts = new List<string>(); var keycounter = 1; foreach (var proprty in primerykey) { var parametrname = "Column" + keycounter++; whereparts.Add("[" + proprty.ColumnName + "] = @" + parametrname); var propertyvalue = proprty.PropertyInfo.GetValue(entites); parmeters.Add(new SqlParameter(parametrname, propertyvalue)); } query.Append(" where " + string.Join(" and ", whereparts)); using (var connection = new SqlConnection(conntionstring)) { connection.Open(); var comand = connection.CreateCommand(); comand.CommandText = query.ToString(); foreach (var parameter in parmeters) { comand.Parameters.Add(parameter); } return comand.ExecuteNonQuery(); } }
این اررو را میده
Must declare the scalar variable "@value".
1 پاسخ
0
روی خط زیر break point بزار شاید داری مقدار رشته ایی پاس میدی بجای عددی . باید مقدار value@ عددی باشه
var propertyvalue = proprty.PropertyInfo.GetValue(entites);