Я пытаюсь сделать это с помощью 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 box в базу данных, а затем пытался вызвать его снова перед обновлением 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;