自定义DataSet,想用属性访问的方法访问内部表内指定行列的值。如下写法编译时没问题,但运行时报错,请高手指点。感谢
public class UserDataSet : DataSet
{
private DataTable tbError;
public UserDataSet()
{
tbError = new DataTable("Error");
DataColumn colFlg = new DataColumn("ErrorFlg", Type.GetType("System.Int32"));
tbError.Columns.Add(colFlg);
DataColumn colID = new DataColumn("ErrorID", Type.GetType("System.String"));
tbError.Columns.Add(colID);
tbError.Rows[0]["ErrorFlg"] = -1;
tbError.Rows[0]["ErrorID"] = "";
}
public int ErrorFLG
{
set
{
tbError.Rows[0]["ErrorFlg"] = value;
}
get
{
return Convert.ToInt32(tbError.Rows[0]["ErrorFlg"]);
}
}
public string ErrorID
{
set
{
tbError.Rows[0]["ErrorID"] = value;
}
get
{
return tbError.Rows[0]["ErrorID"].ToString();
}
}
}
public class UserDataSet : DataSet
{
private DataTable tbError;
public UserDataSet()
{
tbError = new DataTable("Error");
DataColumn colFlg = new DataColumn("ErrorFlg", Type.GetType("System.Int32"));
tbError.Columns.Add(colFlg);
DataColumn colID = new DataColumn("ErrorID", Type.GetType("System.String"));
tbError.Columns.Add(colID);
tbError.Rows[0]["ErrorFlg"] = -1;
tbError.Rows[0]["ErrorID"] = "";
}
public int ErrorFLG
{
set
{
tbError.Rows[0]["ErrorFlg"] = value;
}
get
{
return Convert.ToInt32(tbError.Rows[0]["ErrorFlg"]);
}
}
public string ErrorID
{
set
{
tbError.Rows[0]["ErrorID"] = value;
}
get
{
return tbError.Rows[0]["ErrorID"].ToString();
}
}
}
public UserDataSet()
{
tbError = new DataTable("Error");
DataColumn colFlg = new DataColumn("ErrorFlg", Type.GetType("System.Int32"));
tbError.Columns.Add(colFlg);
DataColumn colID = new DataColumn("ErrorID", Type.GetType("System.String"));
tbError.Columns.Add(colID);
DataRow dr;
dr = tbError.NewRow();
dr["ErrorFlg"] = -1;
dr["ErrorID"] = "";
tbError.Rows.Add(dr);
}
构建了一个表,连行都没有,你就直接往index为0的行里写东西。
public class UserData
{
private DataTable _tableuser;
public UserData()
{
_tableuser = null;
}
public DataTable TableUser
{
set
{
_tableuser = value;
}
get
{
return _tableuser;
}
}
}
在WEB SERVICES端赋值userData.TableUser=myDataTabel(一个查询结果);最后把userData传到客户端怎么取出userData.TableUser的数据呢?
其中的XML数据如下:
<?xml version="1.0" encoding="utf-8" ?>
- <UserData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.bbinc.co.jp">
<ErrorFLG>0</ErrorFLG>
<ErrorID />
<ParameterName />
<ParameterValue />
<RecordCount>2</RecordCount>
<RecordBegin>0</RecordBegin>
<RecordEnd>0</RecordEnd>
- <TableUser>
- <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="ds" msdata:UseCurrentLocale="true">
- <xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="ds">
- <xs:complexType>
- <xs:sequence>
<xs:element name="USER_ID" type="xs:string" minOccurs="0" />
<xs:element name="PASSWD" type="xs:string" minOccurs="0" />
<xs:element name="USER_NAME" type="xs:string" minOccurs="0" />
<xs:element name="ENTRY_DATE" type="xs:dateTime" minOccurs="0" />
<xs:element name="MAIL_ADDR" type="xs:string" minOccurs="0" />
<xs:element name="SECTION_CD" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
- <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
- <NewDataSet xmlns="">
- <ds diffgr:id="ds1" msdata:rowOrder="0">
<USER_ID>WWWWW</USER_ID>
<PASSWD>QQQQQQ</PASSWD>
<USER_NAME>EEEEE</USER_NAME>
<MAIL_ADDR>[email protected]</MAIL_ADDR>
<SECTION_CD>12343567</SECTION_CD>
</ds>
- <ds diffgr:id="ds2" msdata:rowOrder="1">
<USER_ID>DDDDDD</USER_ID>
<PASSWD>GGGGGG</PASSWD>
<USER_NAME>RRRR</USER_NAME>
<MAIL_ADDR>[email protected]</MAIL_ADDR>
<SECTION_CD>0123456</SECTION_CD>
</ds>
</NewDataSet>
</diffgr:diffgram>
</TableUser>
</UserData>