0

単純に見えることを行う方法を理解するのに苦労していますが、変更を提出する際にどこが間違っているのかを特定するのに助けが必要です. この Windows フォームの基本的な前提は、フォームの読み込みに関する特定の情報をデータベースに照会し、変更が必要な場合にそれを読み込むことです。

それは問題なくロードされ、主キーがそこにあることを確認するために再確認しましたが(それはあります)、何らかの理由で保存されません。tkts.Log = Console.Out; 保存ボタンをクリックしても何も表示されません。私は初心者のプログラマーで、Linq to 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();

        }
    }
}
4

1 に答える 1

0

更新されない理由がわかりました。私はそれにデータを渡したことがありませんでした。送信が変更される前に、このコードを try ブロックに追加しました。

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

なんらかの理由で、コードがフォーム上のコントロールがどこにあるべきかを「知っている」ことを期待していました。

于 2013-04-19T13:55:51.287 に答える