我正在嘗試向我的GridView添加新值,稍後傳遞給Cache和DataSet以及基礎SQL數據庫。添加新行的ADO.NET增量ID
這是我的代碼,但我不知道在行「dataRow [」ID「] =」上輸入什麼,如你所見。其他一切正常工作,其他值被添加到數據庫,如果我只給「ID」任何不存在的數字。
protected void insertStudent_Click(object sender, EventArgs e)
{
DataSet dataSet = (DataSet)Cache["DATASET"];
//DataRow dataRow = dataSet.Tables["Students"].Rows.Find(e.Keys["ID"]);
dataSet.Tables["Students"].PrimaryKey = new DataColumn[] { dataSet.Tables["Students"].Columns["ID"] };
DataRow dataRow = dataSet.Tables["Students"].NewRow();
dataRow["ID"] =
dataRow["FirstName"] = ((TextBox)GridView1.FooterRow.FindControl("txtFirstName")).Text;
dataRow["LastName"] = ((TextBox)GridView1.FooterRow.FindControl("txtLastName")).Text;
dataRow["Gender"] = ((DropDownList)GridView1.FooterRow.FindControl("DropDownListGender")).SelectedValue;
dataRow["Course"] = ((DropDownList)GridView1.FooterRow.FindControl("DropDownListCourse")).SelectedValue;
dataRow["Grade"] = ((DropDownList)GridView1.FooterRow.FindControl("DropDownListGrade")).SelectedValue;
Cache.Insert("DATASET", dataSet, null, DateTime.Now.AddHours(24), System.Web.Caching.Cache.NoSlidingExpiration);
dataSet.Tables["Students"].Rows.Add(dataRow);
GridView1.DataSource = (DataSet)Cache["DATASET"];
GridView1.DataBind();
}
你不應該輸入任何東西。通常數據庫有ID字段的自動增量設置,所以新條目有一個唯一的ID =最後使用的ID + 1 – Andrei
如果我不添加任何東西,我會得到一個異常,「列ID不能爲空」。關於如何在每個新條目上使用SQL來增加ID的任何想法?謝謝! –
這就是我正在談論的,你應該設置數據庫來處理這個問題。如果您正在使用SQL Server,請查看[this thread](例如http://stackoverflow.com/questions/10991894/auto-increment-primary-key-in-sql-server-management-studio-2012) – Andrei