0
我在處理一些看起來很直接的事情時遇到了一些麻煩,但在提交變更時需要一些幫助來確定我要出錯的地方。 這個窗體的基本前提是查詢數據庫中表單負載的特定信息,然後將其加載以進行需要做的任何更改。Linq to SQL - 在表單中加載數據然後保存
它加載得很好,我仔細檢查,以確保主鍵在那裏(這是),但由於某種原因,它不會保存。 tkts.Log = Console.Out;在點擊保存按鈕時甚至不顯示任何內容。我是一名初學者程序員,並且正在嘗試將Linq轉換爲SQL,因此如果有某些事情需要解決,請提供指針。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TicketLogger;
namespace TicketLogger
{
public partial class TicketInfo : Form
{
ITDataClassesDataContext tkts = new ITDataClassesDataContext();
private Int32 ticket_id = 0;
public TicketInfo(Int32 TicketID = 0)
{
InitializeComponent();
//Set local TicketID variable for use on load
ticket_id = TicketID;
}
private void tBL_TICKET_HDRBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
//Save the new ticket to the database
//I think the object Tickets contains the changes, not tkts, but how to access?
try
{
tkts.Log = Console.Out;
tkts.SubmitChanges();
tkts.Log.Close();
}
catch (Exception m)
{
MessageBox.Show(m.ToString());
}
}
private void TicketInfo_Load(object sender, EventArgs e)
{
tkts.Log = Console.Out;
//Get the ticket ID and retrieve information
var Ticket = from objTkts in tkts.TBL_TICKET_HDRs
where objTkts.TICKET_ID == ticket_id
select objTkts;
this.tBL_TICKET_HDRBindingSource.DataSource = Ticket;
tkts.Log.Close();
}
}
}
您是否試圖在Console.Out中顯示您的LiNQ查詢的結果? – Brian
如果數據庫中沒有任何變化,我會懷疑你的數據綁定設置不正確 - 嘗試使用一個普通的舊對象進行綁定,並在Save方法中設置一個斷點來驗證。此外,你應該做的數據加載/保存在一個單獨的線程,如:Task.Factory.StartNew(()=> {codegoeshere}); –
Brian - 是的,在try/catch塊中,我試圖看看發生了什麼 - 它從不顯示任何內容,所以我的猜測是它認爲沒有任何更新。我想知道這是否是加載時使用的變體Ticket的問題,但我在嘗試保存時從不訪問它。不知道這是否有效。 – Jeffro