Arrays 复合C1如何重写此Sql update语句以在c#中工作?
我在图像可排序网格中有一段代码,它根据用户对“propid”的新排序顺序发回一个整数字符串数组:Arrays 复合C1如何重写此Sql update语句以在c#中工作?,arrays,linq,c#-4.0,sorting,c1-cms,Arrays,Linq,C# 4.0,Sorting,C1 Cms,我在图像可排序网格中有一段代码,它根据用户对“propid”的新排序顺序发回一个整数字符串数组: { 'imgid': '4,2,3,5,6,7,8,9,1','propid':'391' } 上面在屏幕上显示了9幅图像。db image表既有图像id(imgid)字段,也有排序序列字段(orderseq)。我正在使用自定义命名空间数据类型: < connection.Get< ALocal.propimage >()
{ 'imgid': '4,2,3,5,6,7,8,9,1','propid':'391' }
上面在屏幕上显示了9幅图像。db image表既有图像id(imgid
)字段,也有排序序列字段(orderseq
)。我正在使用自定义命名空间数据类型:
< connection.Get< ALocal.propimage >()
()
与C1中的所有数据类型连接一样
在direct SQL中,我将这样写:
string []q = imgid.Split(',');
string qry="";
for (int i = 0; i < q.Length; i++)
{
qry += "update ALocal_propimage set propimage_orderseq="+(i+1)+" where prop_id="+propid+" and propimage_id="+q[i]+" ;";
}
sqlHelper obj = new sqlHelper();
obj.ExecuteNonQuery(qry);
return "Record Updated";
string[]q=imgid.Split(',');
字符串qry=“”;
for(int i=0;i
在我不断失败的情况下,这如何转化为使用c#将其写入Composite的C1 CMS“更新多个数据”方法
C1站点“更新多个数据”方法的基本示例为:
using (DataConnection connection = new DataConnection())
{
var myUsers = connection.Get<Demo.Users>().Where (d => d.Number < 10).ToList();
foreach (Demo.Users myUser in myUsers)
{
myUser.Number += 10;
}
connection.Update<Demo.Users>(myUsers);
}
使用(DataConnection=newdataconnection())
{
var myUsers=connection.Get().Where(d=>d.Number<10.ToList();
foreach(在myUsers中的Demo.Users myUser)
{
myUser.Number+=10;
}
连接。更新(myUsers);
}
非常感谢您的帮助。您需要将更新代码拆分为get和更新,以便让C1确切地知道您要更新的实体。像这样的
for (int i = 0; i < q.Length; i++)
{
var propimages = connection.Get<ALocal.propimage>().Where(o => o.PropId = propid && p.PropImageId = q[i]);
foreach (var o in propimages)
{
o.OrderSeq = i + 1;
}
connection.Update(propimages);
}
for(int i=0;io.PropId=PropId&&p.PropImageId=q[i]);
foreach(propimages中的var o)
{
o、 OrderSeq=i+1;
}
连接。更新(ProPicages);
}
谢谢Pauli,您总是一个好信息和帮助的喷泉。上述解决方案会在循环中单独更新每条记录。如果有大量图像需要更新,那么生成更新列表,然后使用对数据集的一次更新调用来更新批次是有意义的。