【发布时间】:2010-03-05 10:38:21
【问题描述】:
我正在尝试使用 LINQ:
SQL>> SELECT p_Id from items WHERE p_Name = 'R1'
LINQ>> var getpID = (from p in myDatabaseDataSet.Items
where p.p_Name == ptxtBox.Text
select p.p_Id).SingleOrDefault();
int p_Id = getpID;
但是 getpID 总是返回 0。怎么了?
编辑:nvm 语法是正确的。它总是返回 0 的原因是数据库中不存在该值。我在数据库中插入了 txt 框值,然后在刷新 myDatabaseSet 之前尝试再次调用它。所以我需要添加 Fill() 然后 getpID 才能读取该值。
完整代码:
int c_Id = Convert.ToInt32(pcomboBox.SelectedValue);
int p_Id = 0;
string itemName = ptxtBox.Text;
this.Validate();
this.itemsBindingSource.EndEdit();
this.itemsTableAdapter.Insert(c_Id, itemName);
this.myDatabaseDataSet.AcceptChanges();
this.itemsTableAdapter.Fill(myDatabaseDataSet.Items);
var getpID = (from p in myDatabaseDataSet.Items
where p.p_Name == itemName
select p.p_Id).SingleOrDefault();
p_Id = getpID;
【问题讨论】:
标签: sql linq linq-to-sql