2011-07-20 58 views
0

所以今天,我在工作中開發的應用程序中發現了一些神祕的.NET架構。我需要幫助理解這個架構。寫它的人早已不在了,我堅持要弄明白。我們在Web應用程序中使用一些隨機工作流的代碼創建一個對象(對於我的問題來說不重要)。該對象正在從Designer.vb文件中找到的類實例化。直到我在Visual Studio的「解決方案資源管理器」中單擊「顯示所有文件」之後,我纔看到文件。有3個文件鏈接在一起..一個*.xsd文件,一個*.Designer.vb文件和一個*.xsx文件。 *.Designer.vb文件看起來是自動生成的。值得讚賞的是,關於這個架構如何工作以及如何改變SQL查詢的指導。未知的.NET架構以某種方式連接到SQL數據庫

目標:
dbo.note表列獲取dbo.note.text,並將其放置在dbo.exportnote.text列。我只是不明白它是如何連接到數據庫並從dbo.note.text字段獲取數據。我想讓查詢更加具體(可能在其上放置一個where子句)。但我真的只想瞭解它如何與數據庫進行通信。大多數代碼使用存儲過程。所以我對這個架構感到困惑。如果你能解釋這個代碼是如何自動生成的,那真的很酷。當我從解決方案資源管理器中查看「在瀏覽器中查看」時,似乎*.xsd文件是一個XML文件。

代碼以實例化設計器類的對象:

Dim _TestResultsReportDataSet As New TestResultsReportDataSet 

標準解之圖像的資源管理器:

enter image description here

部分類的片段在設計師:

 <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0"), _ 
Global.System.Serializable(), _ 
Global.System.ComponentModel.DesignerCategoryAttribute("code"), _ 
Global.System.ComponentModel.ToolboxItem(true), _ 
Global.System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema"), _ 
Global.System.Xml.Serialization.XmlRootAttribute("TestResultsReportDataSet"), _ 
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")> _  
Partial Public Class TestResultsReportDataSet 
    Inherits Global.System.Data.DataSet 

呼叫#1:

Dim filterString As String = String.Format("TestResultsReportId = {0}", _testResultsReportRow.TestResultsReportId) 
Dim _noteRow As TestResultsReportDataSet.NoteRow 
For Each _noteRow In _testResultsReportDataSet.Note.Select(filterString) 
    Dim _exportNote As New Exportnote(DataApplicationContext) 
    CopyNoteRowToExportNote(_exportNote, _noteRow, exportTestResultReportId) 
    _exportNote.Save() 
Next 

調入 「CopyNoteRowToExportNote」:

Public Sub CopyNoteRowToExportNote(ByVal _exportNote As Exportnote, _ 
            ByVal _NoteRow As TestResultsReportDataSet.NoteRow, _ 
            ByVal exportTestResultReportId As Integer) 
    With _exportNote 
     .Exporttestresultreport.SetId(exportTestResultReportId) 
     .LabAccessioningNumber = _NoteRow.LabAccessioningNumber 
     .Text = _NoteRow.Text 
    End With 
End Sub 

...如果你需要更多的信息,只是問

+7

谷歌「強類型的驗證表名和列名DataSet「,我認爲它將開始有意義... – Scrappydog

+0

謝謝,我會做一些研究。 – MacGyver

回答

1

強類型DataSet中是答案。儘管我仍然無法弄清楚在DataTable創建時如何將SQL表映射到在DataSet Designer中創建的強類型DataSet DataTable,因此不需要TableAdaptor。這是我排隊時遇到的突出問題之一。

0

是的,這確實是一個強類型數據集。您將在該項目中找到一些.xsd 文件。在 設計器中打開相同的數據集時,它會有一些(至少一個)數據適配器與 相關聯,並且這些數據適配器將與它們一起存儲連接字符串。 通常,它們引用的連接字符串來自配置文件。所以 尋找它。

使用這樣的強類型數據集可以更容易地進行數據 插圖/更新/刪除和選擇操作,因爲我們可以提供和 在編譯時