【发布时间】:2020-04-27 13:04:20
【问题描述】:
我有一张这样的桌子
Table (Id decimal,XMLContent XML)
现在我想查询具有特定类型的记录 这是我的代码
public ActionResult Index(int? id,FormCollection frm)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
ViewBag.FormId = id;
ViewBag.FormName = db.Forms.Find(id).Name ;
var xMLDatas = db.XMLDatas.Include(x => x.Form).Where(x=>x.FormId==id).AsQueryable();
foreach (string item in frm)
{
if (item.StartsWith("xml-") && !string.IsNullOrEmpty( Request.Form[item]))
{
string i = item.Replace("xml-", "");
string value = Request.Form[item];
xMLDatas = xMLDatas.Where(x => x.XMLContent.Contains("<" + i + "[^>]*>"+value+"</" + i + ">")).AsQueryable();
}
}
return View(xMLDatas.ToList());
}
但我在返回时收到此错误消息
不允许从数据类型 xml 到数据类型 nvarchar、表“dbo.XMLDatas”、列“XMLContent”的隐式转换。使用 CONVERT 函数运行此查询。
【问题讨论】:
-
您需要一个 XmlReader。请参阅:docs.microsoft.com/en-us/dotnet/api/…
标签: c# sql sql-server xml linq