簡體   English   中英

tableAdapter的命令和設計器中下面列出的查詢之間有什么區別?

[英]What is the difference between tableAdapter's commands and queries listed below it in designer?

我有一個數據集,在設計器中的每個dataTable下都有一個表適配器。 因此,我可以對dataTable添加-> query並選擇一個存儲過程,然后在表適配器部分中列出該存儲過程。 我還可以選擇表適配器並將其選擇/插入/更新/刪除命令設置為存儲過程。

我的問題是有什么區別,更重要的是,您如何知道何時調用查詢或命令? (我需要知道,因為我可以對參數進行不同的配置,但這些參數無法正常工作)

例如,我怎么知道它正在使用哪一個?

    private void saveToolStripButton_Click(object sender, EventArgs e)
    {
        this.Validate();
        this.permitInfoLinksBindingSource.EndEdit();
        this.linksTableAdapter.Update(this.dataSet1);
    }

似乎以下內容使用環境變量正確調用了存儲的proc ...但是,如果我嘗試將Environment.UserName.ToUpper()放在SourceColumn下的“ Parameters Collection Editor”中,則會發送null。

this.linksTableAdapter.spInsertLink(Environment.UserName.ToUpper(), fkPermitInfoID, 
fPath, ref ident);

MSDN的此摘錄是否有幫助?

TableAdapter使用數據命令來讀取和寫入數據庫。 TableAdapter的初始Fill(主)查詢用作創建關聯數據表以及與TableAdapter.Update方法關聯的InsertCommand,UpdateCommand和DeleteCommand命令的架構的基礎。 這意味着調用TableAdapter的Update方法將執行最初配置TableAdapter時創建的語句,而不是使用TableAdapter查詢配置向導添加的其他查詢之一。 使用TableAdapter時,它可以有效地執行與通常執行的命令相同的操作。 例如,當您調用適配器的Fill方法時,適配器將在其SelectCommand屬性中執行data命令,並使用數據讀取器(例如SqlDataReader)將結果集加載到數據表中。 同樣,當您調用適配器的Update方法時,它將為數據表中的每個更改的記錄執行相應的命令(在UpdateCommand,InsertCommand和DeleteCommand屬性中)。

據我了解, *Command是樣板查詢,而表下方的是更具體的自定義內容,您可以根據自己的更復雜的需求創建自己的內容,因此,如果使用這些命令,則無法將更復雜的參數傳遞給查詢。

我也由此推測,當您調用諸如update等的基本操作時,將執行默認命令,而不是隨后定義的查詢。

雖然我只是短暫地使用了表適配器,但是我對表適配器的了解還很淺(我一經發現就移到了實體框架上),所以這個答案之夜並不值得多...

暫無
暫無

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

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