我有一些學生的關係型ms-access數據庫。 (數據庫已經填充了一些數據) 我的數據庫中有兩張表: 1. tblStuInfo爲學生的一般信息。 2. tblStuEducation管理其年級和興趣每年。c# - 獨立更新具有相同ID的ms-access數據庫記錄
命名列 「StuID」 是tblStuInfo &在tblStuEducation外鍵 主鍵。
My database structure looks like this & example data looks like this
在我的窗體加載事件,動態文本框會自動在tblStuEducation表中每個記錄創建的,他們沒有問題,適當地填補。
我的問題是,當我編輯的一些信息(這裏假設只是EduYear)通過WinForm的,然後點擊保存,所有記錄都將得到相同的值(最後一個文本框)
這裏是我的保存按鈕代碼:
connection.Open();
OleDbCommand updateStuEducation = new OleDbCommand();
updateStuEducation.Connection = connection;
readStuEducation.CommandText = "select * from tblStuEducation where stuID = 1000";
//textBoxNamesArray use LINQ to save all values from textboxes with txtEduYear in their name
string[] textBoxNamesArray = tabpEdu.Controls.OfType<TextBox>().Where(a => a.Name.Contains("txtEduYear")).Select(a => a.Text).ToArray();
Int32 i = 0;
foreach (string value in textBoxNamesArray)
{
readStuEducation.CommandText = "update tblStuEducation set EduYear = '" + value[i] + "'";
readStuEducation.ExecuteNonQuery();
i++;
}
connection.Close();
我需要如下:
if i = 0 => value[0] Save in Row[0] of tblStuEducation where stuID = 1000.
if i = 1 => value[1] Save in Row[1] of tblStuEducation where stuID = 1000.
if i = 2 => value[2] Save in Row[2] of tblStuEducation where stuID = 1000.
等等...
謝謝你史蒂夫。但它仍然更新所有EduYear列的記錄,其中stuID = 1000並帶有最新的文本框值。我需要更新每一行的獨立年份值。 –
然後,您可能需要WHERE子句中的另一個條件 - 我已經添加了一個作爲示例;這將爲某一年的特定學生設定分數。 –
這正是我的問題。除了stuID,所有其他列可以有不同的值,因此條件可能會有所不同。我正在尋找解決方案來瀏覽更新查詢中的每一行。就像我們在使用DataReader while循環時一樣 –