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);