簡體   English   中英

處理DataGridView中的空單元格

[英]Handling empty cells in DataGridView

我如何處理DataGridView中有3列(帳戶標題,借方,貸方)的空單元格值,用戶選擇帳戶的第一列,然后輸入“借方”或“貸方”列,因此在每一行中都保留一個空單元格。 我有3個表涉及一個條目。

create table Debit (debit_id, amount, **acct_id, entry_id);
create table Credit (credit_id, amount, **acct_id, entry_id);
create table Entry (entry_id, date);

基本上我希望它看起來像這樣 到目前為止,我已經完成了這3個表的連接

SELECT  Entry.entry_id, Entry.Date, Debit.acct_id, Debit.amount, 
Credit.acct_id, Credit.amount FROM Entry FULL OUTER JOIN Debit
ON Entry.entry_id = Debit.entry_id FULL OUTER JOIN Credit
ON Entry.entry_id = Credit.entry_id

在DataGridView中有6列。 我仍然沒有想到只顯示3列的借方和貸方帳戶在其一列中的金額及其相應列中的金額的查詢,以及是否可以處理借方和貸方列中的空白單元格的查詢我所做的工作正常,但可用性方面卻不好。

您能為我提出一些建議的方法嗎?

**帳戶表

我認為參加工會可以解決您的問題。 以下查詢將兩組結果合並為一個結果集:

在e.entry_id = d.entry_id上從e中選擇e.entry_id,e.Date,d.acct_id,d.a金額作為e加入借記卡

全部合並

從e中選擇e.entry_id,e.Date,c.acct_id,c.amount作為e在e.entry_id = c.entry_id上以c身份加入Credit

我推斷(a)您正在使用數據綁定,而(b)這是供用戶輸入數據的。 如果用於輸入,那么我將放棄數據綁定,並在代碼中從網格填充/讀回。

如果您使用的是DataGridView我建議您采用一種更加面向對象的方法,而不是直接傳遞SQL查詢的結果。 無論如何,您如何使用此方法將更新推回?

這是一個例子。 我知道它在VB.Net中,但是仍然應該有意義。

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim entries As List(Of AccountEntry) = RetrieveEntries()

        DataGridView1.DataSource = entries

    End Sub

    Public Class AccountEntry
        Public Property Id As Integer
        Public Property Debit As Nullable(Of Decimal)
        Public Property Credit As Nullable(Of Decimal)
        Public Property EntryDate As DateTime
    End Class

    Public Function RetrieveEntries() As List(Of AccountEntry)
        Dim returnEntries As List(Of AccountEntry) = Nothing
        ' Do your database stuff here to retrieve a list of AccountEntry'
        Return returnEntries
    End Function

End Class

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM