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();
}
}
}
我发现为什么它不会更新。我从来没有给它传递任何数据。在提交更改之前,我在try块中添加了这段代码,它接受了它。
TBL_TICKET_HDR tkthdr = tkts.TBL_TICKET_HDRs.Single(t => t.TICKET_ID == ticket_id);
tkthdr.ISSUE_DESC = iSSUE_DESCTextBox.Text;
出于某种原因,我只是希望代码"知道"表单上的控件应该在哪里。