如何使用LINQ链接数据库?举个例子(C#.NET)谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用LINQ链接数据库?举个例子(C#.NET)谢谢相关的知识,希望对你有一定的参考价值。
参考技术A 1、在App_Code下面添加新项“LINQto
SQL
类”
2、打开该类,设置Name属性(例如MyLinqDB)和Connection属性
3、服务器资源管理器内添加数据库连接
4、将数据库内需要操作的表拖入LINQ
to
SQL
类的设计视图,并保存
5、新建数据绑定控件例如ListView1
6、后台Page_Load编写代码:
var
DB
=
new
MyLinqDB();
var
query
=
from
t
in
DB.T_Users
select
new
t.ID,
t.UserName,
t.Password;
ListView1.DataSource
=
query.Where(t
=>
t.ID
>
0).Skip(3
*
20).Take(20);//每页20,第四页
ListView1.DataBind();
如何在c#asp.net中获取xml父节点的子元素值(不使用linq)
【中文标题】如何在c#asp.net中获取xml父节点的子元素值(不使用linq)【英文标题】:How to get the child element values of a xml parent node in c# asp.net(without using linq) 【发布时间】:2014-02-17 13:09:12 【问题描述】:我有一个带有嵌套元素的 xml 文件。我需要加载 xml 文件并将特定子元素的值保存到 sql 数据库中。
xml 文件:
<section id="A00-A09">
<desc>Intestinal infectious diseases (A00-A09)</desc>
<diag>
<name>A00</name>
<desc>Cholera</desc>
<diag>
<name>A00.0</name>
<desc>Cholera due to Vibrio cholerae 01, biovar cholerae</desc>
<inclusionTerm>
<note>Classical cholera</note>
</inclusionTerm>
</diag>
<diag>
<name>A00.1</name>
<desc>Cholera due to Vibrio cholerae 01, biovar eltor</desc>
<inclusionTerm>
<note>Cholera eltor</note>
</inclusionTerm>
</diag>
<diag>
<name>A00.9</name>
<desc>Cholera, unspecified</desc>
</diag>
</diag>
</section>
<section id="A15-A19">
<desc>Tuberculosis (A15-A19)</desc>
<includes>
<note>infections due to Mycobacterium tuberculosis and Mycobacterium bovis</note>
</includes>
<diag>
<name>A15</name>
<desc>Respiratory tuberculosis</desc>
<diag>
<name>A15.0</name>
<desc>Tuberculosis of lung</desc>
<inclusionTerm>
<note>Tuberculous bronchiectasis</note>
<note>Tuberculous fibrosis of lung</note>
<note>Tuberculous pneumonia</note>
<note>Tuberculous pneumothorax</note>
</inclusionTerm>
</diag>
<diag>
<name>A15.4</name>
<desc>Tuberculosis of intrathoracic lymph nodes</desc>
<inclusionTerm>
<note>Tuberculosis of hilar lymph nodes</note>
<note>Tuberculosis of mediastinal lymph nodes</note>
<note>Tuberculosis of tracheobronchial lymph nodes</note>
</inclusionTerm>
<excludes1>
<note>tuberculosis s`enter code here`pecified as primary (A15.7)</note>
</excludes1>
</diag>
</diag>
</section>
我已加载 xml 但无法从子元素中获取值,因为它具有相同的标记名称。有没有人可以帮我解决这个问题
【问题讨论】:
您想在没有 linq 的情况下执行此操作的任何具体原因?我认为如果没有 linq,这项任务会更加困难,特别是因为存在同名的嵌套元素。请发布一些您尝试过的相关代码,即使它失败了。 好的,你能给我一个linq中的解决方案吗 您的 xml 文件在发布时无效(它有多个根元素)。那是实际的格式吗? 是的,这就是实际的格式。那么在这种情况下我们不能使用 linq,因为文件不能作为XDocument
对象加载。否则,如果 xml 文件有一个根且有效,我们就有机会使用 linq,而这种情况下的问题是您想从哪个特定元素中获取值?
xml 文件以根 以下控制台应用程序示例演示了一种获取<desc>
元素的方法,该元素是<section>
元素的直接子元素,还可以在每个<diag>
元素下获取<name>
和<desc>
。我正在使用来自System.Xml.Linq
的XDocument。但不使用 linq 查询语法,因为在这种情况下没有必要,而且您似乎不喜欢它:
//load xml string
var doc = XDocument.Parse(xml);
//or use XDocument.Load("path_to_xml_file.xml"); to load from file
//get all <section> element
var sections = doc.Root.Elements("section");
//get <desc> and all <diag> under each <section>
foreach (var section in sections)
var desc = (string)section.Element("desc");
Console.WriteLine(String.Format("new Section. Desc: 0", desc));
var diags = section.Descendants("diag");
foreach (var diag in diags)
var name = (string)diag.Element("name");
var desc2 = (string)diag.Element("desc");
Console.WriteLine(String.Format("name: 0, desc: 1", name, desc2));
注意Descendants()
用于获取当前元素的任何子元素,Element()
用于仅获取当前元素的直接子元素。
【讨论】:
以上是关于如何使用LINQ链接数据库?举个例子(C#.NET)谢谢的主要内容,如果未能解决你的问题,请参考以下文章
使用 ASP.NET 动态数据/LINQ to SQL,如何让两个表字段与同一个外键有关系?
asp.net页面如何接收AJAX传递过来的数组(普通数组和jason数组,两个麻烦都给举个例子)