[英]How Do I Edit Database Records In A DataGridView Using LINQ to SQL?
[英]How do I edit/update records from a database using textbox?
我有問題,請您幫忙。 我的頁面上有一個編輯按鈕和文本框。 我想將數據庫中的一條記錄編輯到這些文本框中。 我編寫了以下代碼,當我單擊“編輯”按鈕時,我得到了結果。 結果加載到我的文本框中。 但是,當我第二次嘗試再次運行具有相同ID的頁面時,就會出現此錯誤“指定的轉換無效”。 怎么了 我用int ID = 3; 在此示例中獲得第三條記錄
受保護的void Button2_Click(對象發送者,EventArgs e)
{
DataClassesDataContext cxt =新的DataClassesDataContext(); USER_TABLE aChar = cxt.USER_TABLEs.Single(c => c.ID == 3); //得到一條記錄
fname2.Text = aChar.FIRST_NAME;
lname2.Text = aChar.LAST_NAME;
pob2.Text = aChar.PLACE_OF_BIRTH;
pom2.Text = aChar.PLACE_OF_MARRIAGE;
education2.Text = aChar.EDUCATION;
occupation2.Text = aChar.OCCUPATION;
pod2.Text = aChar.PLACE_OF_DEATH;
String str = aChar.DATE_OF_BIRTH.ToString();
String str1 = aChar.DATE_OF_MARRIAGE.ToString();
String str2 = aChar.DATE_OF_DEATH.ToString();
為什么在事件處理程序代碼中執行if (!Page.IsPostBack)
?
我想說的是,通常只有在回發后才引發一個事件...
除了PageLoad之外,我很少看到IsPostBack用於其他任何東西。
您需要明確保存對上下文的更改
cxt.SubmitChanges();
似乎在獲取對象(使用Single)時會收到指定的強制轉換異常。 您可能需要檢查對象模型和數據庫之間的數據類型,以確保在使用字符串的數據庫中對象不期望數字(反之亦然)。 另外,檢查對象和數據庫列的可空性。 綁定時,LINQ to SQL不支持隱式類型轉換。
至於為什么它對第一個請求有效,而對第二個請求無效,為什么兩個請求之間發生了什么變化? 另外,兩個請求之間的上下文是否仍然有效? 當第二次請求相同的ID時,Single會緩存獲取的值,並使查詢管道短路,因此,使用Single時,如果上下文保持活動狀態,則應該只看到一個數據庫請求。 嘗試使用ctx.Log = Console.Out記錄您的數據庫請求,或者使用SQL Profiler(如果有)進行記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.