我尝试读取作为嵌入式资源的XML文件,并使用它来创建DataSet
。
通常我会按如下方式访问xml文件......
'THIS SECTION POPULTATES THE DATAGRIDVIEW WITH STOCK INFORMATION MADE AVAILABLE IN THE XML DOCUMENT (Stock.xml)...
Dim filepath As String = (IO.Directory.GetCurrentDirectory & "\Stock.xml")
Dim DS_CUSTOMERS As New DataSet
DS_CUSTOMERS.ReadXml(filepath)
Dim DS_CUSTOMERS As New DataSet
DS_CUSTOMERS.ReadXml(rm123.GetObject("Stock.xml"))
DataGridView1.DataSource = DS_CUSTOMERS.Tables(0)
DataGridView1.DataSource = DS_CUSTOMERS
DataGridView1.DataMember = "Data"
引用嵌入式图像也很容易。这样做如下(在这种情况下,Combobox提供文件名):
'This loads the embeded recource image...
Dim rm As Resources.ResourceManager
rm = New Resources.ResourceManager("Load_Calculator.resources", System.Reflection.Assembly.GetExecutingAssembly)
PictureBox1.Image = rm.GetObject(ComboBox1.Text)
现在我的逻辑(这是错误的)将是两个代码的混合并执行以下操作但是在调试时我什么都没得到。
'THIS SECTION POPULTATES THE DATAGRIDVIEW WITH STOCK INFORMATION MADE AVAILABLE IN THE XML DOCUMENT (Stock.xml)...
Dim rm123 As Resources.ResourceManager
rm123 = New Resources.ResourceManager("Load_Calculator.resources", System.Reflection.Assembly.GetExecutingAssembly)
Dim DS_CUSTOMERS As New DataSet
DS_CUSTOMERS.ReadXml(rm123.GetObject("Stock.xml"))
DataGridView1.DataSource = DS_CUSTOMERS.Tables(0)
DataGridView1.DataSource = DS_CUSTOMERS
DataGridView1.DataMember = "Data"
和xml文件如下:
<COMPELATION>
<Data>
<TTN>Select a Truss-System...</TTN>
<FJQ></FJQ>
<TTH></TTH>
<TTW></TTW>
<FCT></FCT>
<MTD></MTD>
<MTT></MTT>
<DVB></DVB>
<TVB></TVB>
<DTP></DTP>
<MAT></MAT>
<TSW></TSW>
</Data>
<Data>
<TTN>FD33</TTN>
<FJQ>3x</FJQ>
<TTH>257,85 mm</TTH>
<TTW>290 mm</TTW>
<FCT>SC1-CON</FCT>
<MTD>50 mm</MTD>
<MTT>2 mm</MTT>
<DVB>20 mm</DVB>
<TVB>2 mm</TVB>
<DTP>12 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,044 kN/m</TSW>
</Data>
<Data>
<TTN>FD34</TTN>
<FJQ>4x</FJQ>
<TTH>290 mm</TTH>
<TTW>290 mm</TTW>
<FCT>SC1-CON</FCT>
<MTD>50 mm</MTD>
<MTT>2 mm</MTT>
<DVB>20 mm</DVB>
<TVB>2 mm</TVB>
<DTP>12 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,058 kN/m</TSW>
</Data>
<Data>
<TTN>HD33</TTN>
<FJQ>3x</FJQ>
<TTH>257,85 mm</TTH>
<TTW>290 mm</TTW>
<FCT>SC1-CON</FCT>
<MTD>50 mm</MTD>
<MTT>3 mm</MTT>
<DVB>20 mm</DVB>
<TVB>2 mm</TVB>
<DTP>12 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,055 kN/m</TSW>
</Data>
<Data>
<TTN>HD34</TTN>
<FJQ>4x</FJQ>
<TTH>290 mm</TTH>
<TTW>290 mm</TTW>
<FCT>SC1-CON</FCT>
<MTD>50 mm</MTD>
<MTT>3 mm</MTT>
<DVB>20 mm</DVB>
<TVB>2 mm</TVB>
<DTP>12 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,074 kN/m</TSW>
</Data>
<Data>
<TTN>HD33</TTN>
<FJQ>3x</FJQ>
<TTH>257,85 mm</TTH>
<TTW>290 mm</TTW>
<FCT>SC1-CON</FCT>
<MTD>50 mm</MTD>
<MTT>3 mm</MTT>
<DVB>20 mm</DVB>
<TVB>2 mm</TVB>
<DTP>12 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,055 kN/m</TSW>
</Data>
<Data>
<TTN>HD34</TTN>
<FJQ>4x</FJQ>
<TTH>290 mm</TTH>
<TTW>290 mm</TTW>
<FCT>SC1-CON</FCT>
<MTD>50 mm</MTD>
<MTT>3 mm</MTT>
<DVB>20 mm</DVB>
<TVB>2 mm</TVB>
<DTP>12 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,074 kN/m</TSW>
</Data>
<Data>
<TTN>FD44</TTN>
<FJQ>3x</FJQ>
<TTH>400 mm</TTH>
<TTW>400 mm</TTW>
<FCT>SC1-CON</FCT>
<MTD>50 mm</MTD>
<MTT>2 mm</MTT>
<DVB>25 mm</DVB>
<TVB>2 mm</TVB>
<DTP>12 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,075 kN/m</TSW>
</Data>
<Data>
<TTN>FD43</TTN>
<FJQ>3x</FJQ>
<TTH>353,11 mm</TTH>
<TTW>400 mm</TTW>
<FCT>SC1-CON</FCT>
<MTD>50 mm</MTD>
<MTT>3 mm</MTT>
<DVB>25 mm</DVB>
<TVB>2 mm</TVB>
<DTP>12 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,059 kN/m</TSW>
</Data>
<Data>
<TTN>HD44</TTN>
<FJQ>4x</FJQ>
<TTH>400 mm</TTH>
<TTW>400 mm</TTW>
<FCT>SC1-CON</FCT>
<MTD>50 mm</MTD>
<MTT>3 mm</MTT>
<DVB>25 mm</DVB>
<TVB>2 mm</TVB>
<DTP>12 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,081 kN/m</TSW>
</Data>
<Data>
<TTN>XD</TTN>
<FJQ>4x</FJQ>
<TTH>400 mm</TTH>
<TTW>290 mm</TTW>
<FCT>SC2-CON</FCT>
<MTD>50 mm</MTD>
<MTT>3 mm</MTT>
<DVB>25 mm</DVB>
<TVB>3 mm</TVB>
<DTP>16 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,085 kN/m</TSW>
</Data>
<Data>
<TTN>ST</TTN>
<FJQ>4x</FJQ>
<TTH>500 mm</TTH>
<TTW>500 mm</TTW>
<FCT>SC3-CON</FCT>
<MTD>50 mm</MTD>
<MTT>4 mm</MTT>
<DVB>30 mm</DVB>
<TVB>3 mm</TVB>
<DTP>16 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,134 kN/m</TSW>
</Data>
<Data>
<TTN>FT50</TTN>
<FJQ>4x</FJQ>
<TTH>521,10 mm</TTH>
<TTW>570 mm</TTW>
<FCT>SC3-CON</FCT>
<MTD>50 mm</MTD>
<MTT>4 mm</MTT>
<DVB>25 mm</DVB>
<TVB>3 mm</TVB>
<DTP>16 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,135 kN/m</TSW>
</Data>
<Data>
<TTN>XT</TTN>
<FJQ>4x</FJQ>
<TTH>800 mm</TTH>
<TTW>570 mm</TTW>
<FCT>CS3-CON</FCT>
<MTD>50 mm</MTD>
<MTT>4 mm</MTT>
<DVB>40 mm</DVB>
<TVB>3 mm</TVB>
<DTP>16 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,200 kN/m</TSW>
</Data>
<Data>
<TTN>TT</TTN>
<FJQ>4x</FJQ>
<TTH>1010 mm</TTH>
<TTW>580 mm</TTW>
<FCT>SC3-CON</FCT>
<MTD>60 mm</MTD>
<MTT>5 mm</MTT>
<DVB>50 mm</DVB>
<TVB>3 mm</TVB>
<DTP>16 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,250 kN/m</TSW>
</Data>
<Data>
<TTN>FT100</TTN>
<FJQ>4x</FJQ>
<TTH>986 mm</TTH>
<TTW>580 mm</TTW>
<FCT>CS3-CON</FCT>
<MTD>60 mm</MTD>
<MTT>5 mm</MTT>
<DVB>50 mm</DVB>
<TVB>3 mm</TVB>
<DTP>16 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,220 kN/m</TSW>
</Data>
<Data>
<TTN>MT</TTN>
<FJQ>4x</FJQ>
<TTH>1180 mm</TTH>
<TTW>780 mm</TTW>
<FCT>CS4-CON</FCT>
<MTD>60 mm</MTD>
<MTT>5 mm</MTT>
<DVB>50 mm</DVB>
<TVB>3 mm</TVB>
<DTP>16 mm</DTP>
<MAT>6082 T6</MAT>
<TSW>0,220 kN/m</TSW>
</Data>
</COMPELATION>
<!-- TTN= Truss Type Name -->
<!-- FJQ= Face Joist Quantity -->
<!-- TTH= Total Truss Hight -->
<!-- TTW= Total Truss Width -->
<!-- MTD= Main Tube Diameter -->
<!-- FCT= Fiting/ Connection Type -->
<!-- MTT= Main Tube Thickness -->
<!-- DVB= Diameter Vertical Brace -->
<!-- TVB= Thickness Vertical Brace -->
<!-- DTP= Diameter Truss Pin -->
<!-- MAT= Material Type -->
<!-- TSW= Truss Self Weight -->
答案 0 :(得分:1)
您可以使用GetManifestResourceStream
方法(而不是GetObject
)从嵌入资源创建Stream
。然后你可以使用以DataSet.ReadXml
作为参数的Stream
重载来阅读它。
Dim DS_CUSTOMERS As New DataSet
Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly
Using rs As IO.Stream = asm.GetManifestResourceStream(asm.GetName.Name & ".Stock.xml")
DS_CUSTOMERS.ReadXml(rs)
End Using
DataGridView1.DataSource = DS_CUSTOMERS.Tables(0)
DataGridView1.DataMember = "Data"
要将现有XML文件作为嵌入式资源添加到项目中,请在“解决方案资源管理器”中右键单击该项目,然后选择“添加”|“项目”。现有项目...然后在“添加现有项目”对话框中,导航到Stock.xml文件(您可能需要将文件类型过滤器设置为“数据文件”)并双击该文件以将其副本添加到你的项目。最后,在Solution Explorer中单击该文件以显示属性,并将Build Action属性更改为“Embedded Resource”。