70٪ تخفیف ویژه جشنواره تابستانه توسینسو
پایان تخفیف تا:
مشاهده دوره‌ها
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".
پرسیده شده در 1396/02/21 توسط

1 پاسخ

0

روی خط زیر break point بزار شاید داری مقدار رشته ایی پاس میدی بجای عددی . باید مقدار value@ عددی باشه


var propertyvalue = proprty.PropertyInfo.GetValue(entites);
پاسخ در 1396/02/22 توسط

پاسخ شما