Linq到SQL -加载数据的形式,然后保存

本文关键字:然后 保存 数据 SQL 加载 Linq | 更新日期: 2023-09-27 18:09:24

我在弄清楚如何做一些看起来很直接的事情时遇到了一些麻烦,但是在提交更改时需要一些帮助来确定我在哪里出错。这个windows窗体的基本前提是在窗体加载时查询数据库中的特定信息,然后加载它以进行任何需要进行的更改。

它加载得很好,我仔细检查了一下,以确保主键在那里(它是),但由于某种原因它不会保存。tks . 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();
        }
    }
}

Linq到SQL -加载数据的形式,然后保存

我发现为什么它不会更新。我从来没有给它传递任何数据。在提交更改之前,我在try块中添加了这段代码,它接受了它。

            TBL_TICKET_HDR tkthdr = tkts.TBL_TICKET_HDRs.Single(t => t.TICKET_ID == ticket_id);
            tkthdr.ISSUE_DESC = iSSUE_DESCTextBox.Text;

出于某种原因,我只是希望代码"知道"表单上的控件应该在哪里。