获取Linq中最后插入的数据

时间:2013-12-01 13:46:03

标签: c# linq

如何获取已插入数据库的最新数据?

我正在使用以下代码插入:

DB.One one = new DB.One();
one.Name = "Name";

db.One.InsertOnSubmit(one);
db.SubmitChanges();

DB.Two two = new DB.Two();
two.OID = one.ID;
two.Age = 20;

db.Two.InsertOnSubmit(two);
db.SubmitChanges();

当我查询我使用的数据时:

var data = from d in db.One
           where d.Name.Contains(textBox1.Text.Trim())
           select d;

dataGridView1.DataSource = data;

dataGridView2.DataSource = data;
dataGridView2.DataMember = "Two";

在datagridview2中,它不显示数据,但是当我重新启动程序时。 一个和两个表包含One.ID - >之间的关系。 Two.OID

4 个答案:

答案 0 :(得分:1)

您有查询,但是对于您需要获取数据的绑定,请尝试以下

dataGridView2.DataSource = data.ToList();

答案 1 :(得分:1)

只需添加.ToList()

即可
var data = (from d in db.One
           where d.Name.Contains(textBox1.Text.Trim())
           select d).ToList();

dataGridView1.DataSource = data;

答案 2 :(得分:0)

var data = from d in db.One
           where d.Name.Contains(textBox1.Text.Trim())
           select d;

此声明在您拨打.Count().ToList()之类的内容之前不会执行,这称为Deferred Execution。拿一个look at the table in this article,你会看到运营商的分类。

要获取最新信息,可能需要查看OrderByDescending

var data = from d in db.One.OrderByDescending(d => d.DateAdded);//for example

编辑:根据您的更新

您希望dataGridView2使用db.Two吗?

var data = (from d in db.One
           where d.Name.Contains(textBox1.Text.Trim())
           select d).ToList();

var data2 = (from d in db.Two
           where d.Name.Contains(textBox1.Text.Trim())
           select d).ToList();

dataGridView1.DataSource = data;
dataGridView2.DataSource = data2;

答案 3 :(得分:0)

在分配数据后调用dataGridView.DataBind();方法。