本文整理汇总了C#中System.Data.DataSet.GetXmlSchema方法的典型用法代码示例。如果您正苦于以下问题:C# DataSet.GetXmlSchema方法的具体用法?C# DataSet.GetXmlSchema怎么用?C# DataSet.GetXmlSchema使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.DataSet
的用法示例。
在下文中一共展示了DataSet.GetXmlSchema方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteDataset
//private void WriteHashTable(Hashtable hash)
//{
// _output.Append("{");
// bool pendingSeparator = false;
// foreach (object entry in hash.Keys)
// {
// if (pendingSeparator)
// _output.Append(",");
// WriteValue(entry);
// _output.Append(":");
// WriteValue(hash[entry]);
// pendingSeparator = true;
// }
// _output.Append("}");
//}
private void WriteDataset(DataSet ds)
{
_output.Append("{");
WritePair("$schema", ds.GetXmlSchema());
_output.Append(",");
foreach (DataTable table in ds.Tables)
{
_output.Append("\"");
_output.Append(table.TableName);
_output.Append("\":[");
foreach (DataRow row in table.Rows)
{
_output.Append("{");
foreach (DataColumn column in row.Table.Columns)
{
WritePair(column.ColumnName, row[column]);
}
_output.Append("}");
}
_output.Append("]");
}
// end dataset
_output.Append("}");
}
示例2: Main
static void Main()
{
string strConn = "Data Source=localhost;Initial Catalog=booksourcedb;Integrated Security=True";
string strSql = "SELECT * FROM book";
SqlDataAdapter dataAdapter = new SqlDataAdapter(strSql, strConn);
DataSet dataSet = new DataSet("booklist");
dataAdapter.Fill(dataSet, "book");
string strXml = dataSet.GetXml();
string strSchema = dataSet.GetXmlSchema();
Console.WriteLine("[DataSet 내용을 XML 문서로 쓰기]");
Console.WriteLine("------------------------------------");
Console.WriteLine(strXml);
Console.WriteLine("\n[DataSet 구조를 Schema 문서로 쓰기]");
Console.WriteLine("------------------------------------");
Console.WriteLine(strSchema);
}
示例3: loadXMLAtom
public bool loadXMLAtom(channel ch, string rss)
{
using (DataSet rssData = new DataSet())
{
System.IO.StringReader sr = new System.IO.StringReader(rss);
DataSet ds2 = new DataSet();
rssData.ReadXml(sr, XmlReadMode.Auto);
string str = rssData.GetXmlSchema();
if (rssData.Tables.Contains("feed"))
{
foreach (DataRow dataRow in rssData.Tables["feed"].Rows)
{
int c = rssData.Tables.Count;
if (rssData.Tables.Contains("link"))
{
foreach (DataRow dr in rssData.Tables["link"].Rows)
{
ch.link = dataRowContains("href", dr, rssData);
break;
}
}
//dataRowContains("title", dataRow, rssData);
//rss_sub.set_title(ch.title);
ch.description = dataRowContains("subtitle", dataRow, rssData);//Convert.ToString(dataRow["subtitle"]);
ch.pubDate = dataRowContains("updated", dataRow, rssData);//Convert.ToString(dataRow["updated"]);
int counter = 0;
if (rssData.Tables.Contains("entry"))
{
foreach (DataRow itemRow in rssData.Tables["entry"].Rows)
{
Item inside = new Item();
inside.titleI = dataRowContains("title", itemRow, rssData);//Convert.ToString(itemRow["title"]);
inside.descriptionI = dataRowContains("summary", itemRow, rssData);//Convert.ToString(itemRow["summary"]);
inside.linkI = dataRowContains("id", itemRow, rssData);//Convert.ToString(rssData.Tables["id"]);
inside.pubDateI = dataRowContains("updated", itemRow, rssData);//Convert.ToString(itemRow["updated"]);
if (inside.pubDateI == "")
{
inside.pubDateI = dataRowContains("issued", itemRow, rssData);
}
inside.subscription = ch.title;
if (rssData.Tables.Contains("link"))
{
foreach (DataRow dr in rssData.Tables["link"].Rows)
{
if (dr["href"].ToString().Contains(".html"))
{
inside.linkI = dr["href"].ToString();
}
}
}
if (rssData.Tables.Contains("author"))
{
//foreach (DataRow authorRow in rssData.Tables["author"].Rows)
DataRow authorRow = rssData.Tables["author"].Rows[0];
//foreach (DataRow authorRow in itemRow["author"])
{
author auth = new author();
auth.name = dataRowContains("name", authorRow, rssData);
auth.email = dataRowContains("email", authorRow, rssData);
inside.authors.Add(auth);
}
}
ch.item.Add(inside);
counter++;
if (counter > ch.maxItems) { break; }
}
}
/*if (findChannelName(ch.title) == null)
{
channels.Add(ch);
}*/
}
}
return true;
}
}
示例4: AutoIncrementStep
public void AutoIncrementStep ()
{
DataSet ds = new DataSet("testds");
DataTable tbl = ds.Tables.Add("testtbl");
DataColumn col = tbl.Columns.Add("id", typeof(int));
col.AutoIncrement = true;
col.AutoIncrementSeed = -1;
col.AutoIncrementStep = -1;
tbl.Columns.Add("data", typeof(string));
Assert.IsTrue (ds.GetXmlSchema ().IndexOf ("AutoIncrementStep") > 0);
}
示例5: CompareResults_Fill
private void CompareResults_Fill(DataSet dsResult,DataSet dsExpected ) {
Exception exp = null;
// try
// {
// BeginCase("Compare Rows count");
// // ??????? Fill return count for first table only ??????
// Compare(ExpectedRowsCount ,ResultRowsCount );
// }
// catch(Exception ex) {exp = ex;}
// finally {EndCase(exp); exp = null;}
try {
BeginCase("Compare data");
Compare(dsResult.GetXml() ,dsExpected.GetXml());
}
catch(Exception ex) {exp = ex;}
finally {EndCase(exp); exp = null;}
try {
BeginCase("Compare schema");
Compare(dsResult.GetXmlSchema() ,dsExpected.GetXmlSchema());
}
catch(Exception ex) {exp = ex;}
finally {EndCase(exp); exp = null;}
}
示例6: fGetXMlSchemaFromDataSet
public string fGetXMlSchemaFromDataSet(DataSet DS)
{
string sXML;
sXML = DS.GetXmlSchema();
return sXML;
}
示例7: CtrlDataBind
//.........这里部分代码省略.........
}
//当前页码,行记录个数
//在XmlCount数据岛增加TotalPage;PageIndex;PageSize,RecordCount数据
XmlNode xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("TotalPage"));
xmlNode.InnerText = (null == this.ViewState["TotalPages" + workitemdrc]) ? "1" : this.ViewState["TotalPages" + workitemdrc].ToString();
xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("PageIndex"));
xmlNode.InnerText = (null == this.ViewState["PageIndex" + workitemdrc]) ? "1" : this.ViewState["PageIndex" + workitemdrc].ToString();
xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("PageSize"));
xmlNode.InnerText = iPageSize.ToString();
xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("RecordCount"));
xmlNode.InnerText = iRecordCount.ToString();
string _s = "";
string xmlstr1 = "";
XmlNode xmlcountNode = xmldocCount.SelectSingleNode("//DataSet");
if (xmlcountNode == null)
{
xmlcountNode = xmldocCount.SelectSingleNode("//汇总");
_s = (xmlcountNode == null) ? "" : xmlcountNode.InnerXml;
xmlstr1 = string.Format("<XML id=\"{0}Tab_Sum\" typexml=\"Count\" itemname=\"{1}\"><汇总>{2}</汇总></XML>", workitemdrc, workitem.ItemName, _s);
}
else
{
_s = (xmlcountNode == null) ? "" : xmlcountNode.InnerXml;
xmlstr1 = string.Format("<XML id=\"{0}Tab_Sum\" typexml=\"Count\" itemname=\"{1}\"><DataSet>{2}</DataSet></XML>", workitemdrc, workitem.ItemName, _s);
}
//删除区数据
Xml CtrlXmlDelete = new Xml();
CtrlXmlDelete.Document = new XmlDocument();
XmlDocument xmldocDel = CtrlXmlDelete.Document;
xmldocDel.AppendChild(xmldocDel.CreateElement(xmldoc.DocumentElement.LocalName));
xmldocDel.DocumentElement.Attributes.Append(xmldocDel.CreateAttribute("id"));
xmldocDel.DocumentElement.Attributes["id"].Value = workitemdrc + "Tab_Delete";
xmldocDel.DocumentElement.Attributes.Append(xmldocDel.CreateAttribute("typexml"));
xmldocDel.DocumentElement.Attributes["typexml"].Value = "Delete";
xmldocDel.DocumentElement.Attributes.Append(xmldocDel.CreateAttribute("itemname"));
xmldocDel.DocumentElement.Attributes["itemname"].Value = workitem.ItemName;
string xmlstr2 = string.Format("<XML id=\"{0}Tab_Delete\" typexml=\"Delete\" itemname=\"{1}\"><etpTemplate_{2}Tab_xmlland></etpTemplate_{3}Tab_xmlland></XML>",
workitemdrc, workitem.ItemName, workitemdrc, workitemdrc);
//数据岛结构信息
Xml CtrlXmlSchema = new Xml();
CtrlXmlSchema.Document = new XmlDocument();
CtrlXmlSchema.Document.LoadXml(ds.GetXmlSchema());
XmlDocument CtrlDBSchema = CtrlXmlSchema.Document;
this.setSchema(CtrlXmlSchema,workitem);
//字典绑定
Xml CtrlXmlDict = new Xml();
DataSet CtrlDsDict = this.CtrlDataBindDict(workitem, ref CtrlXmlDict);
string xmlstr3 = string.Format("<XML id=\"{0}Tab_dict\" typexml=\"Dict\" itemname=\"{1}\"></XML>",
workitemdrc, workitem.ItemName);
string xmlstr4 = string.Format("<XML id=\"{0}Tab\" typexml=\"Data\" itemname=\"{1}\"></XML>",
workitemdrc, workitem.ItemName);
//处理输出的字段格式
XmlDocument XmlSchema = this.setFormatXmlLand(xmldoc, ds, CtrlXmlSchema, CtrlDsDict, CtrlXmlDict);
string strXPath = "//xs:schema";
string strschema = "<XML><xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">{0}</xs:schema></XML>";
XmlDocument xmlLandSchema = new XmlDocument();
xmlLandSchema.LoadXml(strschema);
XmlNode _xmlschema = CtrlXmlSchema.Document.SelectSingleNode(strXPath, this._xmlNsMglSchema);
string strdrc = (workitem.DataSrc).Replace(":", "_x003A_");
_xmlschema.InnerXml = (_xmlschema.InnerXml).Replace(workitem.DataSrc,strdrc);
int isep = 0;
for (int i = 0; i < _xmlschema.Attributes.Count; i++)
{
if (_xmlschema.Attributes[i].Name.IndexOf("xmlns") > -1) continue;
xmlLandSchema.DocumentElement.Attributes.Append(xmlLandSchema.CreateAttribute(_xmlschema.Attributes[i].Name));
xmlLandSchema.DocumentElement.Attributes[isep].Value = _xmlschema.Attributes[i].Value;
isep++;
}
strXPath = "//xs:element[@name='" + strdrc + "']//xs:sequence";
_xmlschema = CtrlXmlSchema.Document.SelectSingleNode(strXPath, this._xmlNsMglSchema);
string _ixml = _xmlschema.InnerXml.Replace("xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"", "");
_ixml = _ixml.Replace("minOccurs=\"0\"","");
string xmlstr5 = string.Format(xmlLandSchema.InnerXml, _ixml);
/*
if (this.CtrlHiddenGrid)
{
this.GridDiv.Style["display"] = "none";
return;
}
//读取Grid模板
this._xmltpdoc.Load(this.Server.MapPath(this._tpGridFile));
//设定标题列
this.setTitle();
//设定明细列
this.setDetail();
//设定脚注列
this.setFoot();
*/
return xmlstr1 + xmlstr2 + xmlstr3 + xmlstr4 + xmlstr5;
}
示例8: CtrlDataBind
//.........这里部分代码省略.........
this.ViewState["TotalPages" + CtrlWorkItem.DataSrc] = (int)Math.Ceiling((double)iRecordCount / iPageSize);
}
else
this.ViewState["TotalPages" + CtrlWorkItem.DataSrc] = (int)Math.Ceiling((double)iRecordCount / iPageSize);
}
}
}
else
xmldocCount.LoadXml("<DataSet><DataTableCount/></DataSet>");
xmldocCount.DocumentElement.Attributes.Append(xmldocCount.CreateAttribute("id"));
xmldocCount.DocumentElement.Attributes["id"].Value = this.CtrlXmlID + "_Sum";
xmldocCount.DocumentElement.Attributes.Append(xmldocCount.CreateAttribute("typexml"));
xmldocCount.DocumentElement.Attributes["typexml"].Value = "Count";
xmldocCount.DocumentElement.Attributes.Append(xmldocCount.CreateAttribute("itemname"));
xmldocCount.DocumentElement.Attributes["itemname"].Value = this.CtrlItemName;
//当前页数据
DataSet ds = new DataSet(this.CtrlXmlLand.ClientID);
ds.EnforceConstraints = false;
strParams = this.getStrParams();
page.PgQuery.FillDataSet(this.CtrlWorkItem.DataSrc, paramlist, strParams, ds);
this.CtrlDataSource = ds.Tables[this.CtrlWorkItem.DataSrc];
//增加行光标列
if (null != this.CtrlDataSource && !this.CtrlDataSource.Columns.Contains("RowNum"))
this.CtrlDataSource.Columns.Add("RowNum", Type.GetType("System.Int32"));
if (iPageSize < 1) iPageSize = 10;
int iPageIndex = 1;
if (null != this.ViewState["PageIndex" + CtrlWorkItem.DataSrc])
iPageIndex = Convert.ToInt32(this.ViewState["PageIndex" + CtrlWorkItem.DataSrc]);
for (int i = 0; null != this.CtrlDataSource && i < this.CtrlDataSource.Rows.Count; i++)
this.CtrlDataSource.Rows[i]["RowNum"] = i + 1 + (iPageIndex - 1) * iPageSize;
//如果是数字类型,值是0的,改为空的
for (int i = 0; null != this.CtrlDataSource && i < this.CtrlDataSource.Columns.Count; i++)
{
DataColumn col = this.CtrlDataSource.Columns[i];
if ("rownum" == col.ColumnName.ToLower()) continue;
if ("Decimal" != col.DataType.Name && "Double" != col.DataType.Name && "Int16" != col.DataType.Name
&& "Int32" != col.DataType.Name && "Int64" != col.DataType.Name && "Single" != col.DataType.Name
&& "UInt16" != col.DataType.Name && "UInt32" != col.DataType.Name && "UInt64" != col.DataType.Name)
continue;
DataRow[] drs = this.CtrlDataSource.Select(col.ColumnName + "=0");
for (int j = 0; j < drs.Length; j++)
drs[j][i] = DBNull.Value;
}
//生成数据文档
this.CtrlXmlLand.Document = new XmlDataDocument(ds);
this.CtrlDBXmlDoc = this.CtrlXmlLand.Document;
XmlDocument xmldoc = this.CtrlXmlLand.Document;
if (xmldoc.DocumentElement == null)
xmldoc.AppendChild(xmldoc.CreateElement(this.CtrlXmlLand.ClientID));
if (null == xmldoc.DocumentElement.Attributes["id"])
xmldoc.DocumentElement.Attributes.Append(xmldoc.CreateAttribute("id"));
if (null == xmldoc.DocumentElement.Attributes["itemname"])
xmldoc.DocumentElement.Attributes.Append(xmldoc.CreateAttribute("itemname"));
if (null == xmldoc.DocumentElement.Attributes["typexml"])
xmldoc.DocumentElement.Attributes.Append(xmldoc.CreateAttribute("typexml"));
xmldoc.DocumentElement.Attributes["id"].Value = this.CtrlXmlID;
xmldoc.DocumentElement.Attributes["itemname"].Value = this.CtrlItemName;
xmldoc.DocumentElement.Attributes["typexml"].Value = "Data";
if (iRecordCount < this.CtrlDataSource.Rows.Count)
iRecordCount = this.CtrlDataSource.Rows.Count;
//当前页码,行记录个数
//在XmlCount数据岛增加TotalPage;PageIndex;PageSize,RecordCount数据
XmlNode xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("TotalPage"));
xmlNode.InnerText = (null == this.ViewState["TotalPages" + CtrlWorkItem.DataSrc]) ? "1" : this.ViewState["TotalPages" + CtrlWorkItem.DataSrc].ToString();
xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("PageIndex"));
xmlNode.InnerText = (null == this.ViewState["PageIndex" + CtrlWorkItem.DataSrc]) ? "1" : this.ViewState["PageIndex" + CtrlWorkItem.DataSrc].ToString();
xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("PageSize"));
xmlNode.InnerText = iPageSize.ToString();
xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("RecordCount"));
xmlNode.InnerText = iRecordCount.ToString();
//删除区数据
this.CtrlXmlDelete.Document = new XmlDocument();
XmlDocument xmldocDel = this.CtrlXmlDelete.Document;
xmldocDel.AppendChild(xmldocDel.CreateElement(xmldoc.DocumentElement.LocalName));
xmldocDel.DocumentElement.Attributes.Append(xmldocDel.CreateAttribute("id"));
xmldocDel.DocumentElement.Attributes["id"].Value = this.CtrlXmlID + "_Delete";
xmldocDel.DocumentElement.Attributes.Append(xmldocDel.CreateAttribute("typexml"));
xmldocDel.DocumentElement.Attributes["typexml"].Value = "Delete";
xmldocDel.DocumentElement.Attributes.Append(xmldocDel.CreateAttribute("itemname"));
xmldocDel.DocumentElement.Attributes["itemname"].Value = this.CtrlItemName;
//数据岛结构信息
this.CtrlXmlSchema.Document = new XmlDocument();
this.CtrlXmlSchema.Document.LoadXml(ds.GetXmlSchema());
this.CtrlDBSchema = this.CtrlXmlSchema.Document;
this.setSchema();
//字典绑定
this.CtrlDataBindDict();
//处理输出的字段格式
this.setFormatXmlLand(xmldoc, ds);
//读取控件模板,绑定树
if(""!=this._tpGridFile)
this._xmltpdoc.Load(this.Server.MapPath(this._tpGridFile));
//
for (int i = 0; i < this.CtrlXmlLand.Document.DocumentElement.ChildNodes.Count; i++)
this.bindTree(this.CtrlXmlLand.Document.DocumentElement.ChildNodes[i]);
this.trvLand.ExpandAll();
return;
}
示例9: GetXMLSchema
/// <summary>
/// Get XML Scheme of a table
/// </summary>
/// <param name="tablename"></param>
/// <returns></returns>
public string GetXMLSchema(string tablename)
{
using (SqlConnection conn = new SqlConnection(this.ConnectionString))
{
SqlCommand cmd = new SqlCommand(string.Format("SELECT TOP 1 * FROM {0};", tablename), conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
// Get xml schema
da.FillSchema(ds, SchemaType.Mapped, tablename);
string xmlSchema = ds.GetXmlSchema();
if ((xmlSchema != null) && (xmlSchema != ""))
{
xmlSchema = xmlSchema.Replace("utf-16", "utf-8");
}
else
{
xmlSchema = "";
}
return xmlSchema;
}
}
示例10: WriteDataset
private void WriteDataset(DataSet ds)
{
_output.Append('{');
if (useExtension)
{
WritePair("$schema", useMinimalDataSetSchema ? (object)GetSchema(ds) : ds.GetXmlSchema());
_output.Append(',');
}
foreach (DataTable table in ds.Tables)
{
WriteDataTableData(table);
}
// end dataset
_output.Append('}');
}
示例11: WriteDataset
private void WriteDataset(DataSet ds)
{
_output.Append('{');
if (useExtension)
{
WritePair("$schema", useMinimalDataSetSchema ? (object)GetSchema(ds) : ds.GetXmlSchema());
_output.Append(',');
}
foreach (DataTable table in ds.Tables)
{
_output.Append('\"');
_output.Append(table.TableName);
_output.Append("\":[");
DataColumnCollection cols = table.Columns;
foreach (DataRow row in table.Rows)
{
_output.Append('[');
bool pendingSeperator = false;
foreach (DataColumn column in cols)
{
if (pendingSeperator) _output.Append(',');
WriteValue(row[column]);
pendingSeperator = true;
}
_output.Append(']');
}
_output.Append(']');
}
// end dataset
_output.Append('}');
}
示例12: GetDataSet
private static string GetDataSet(List<DataTable> dataTableList, string dataSetName)
{
DataSet ds = new DataSet(dataSetName);
foreach (DataTable dataTable in dataTableList)
ds.Merge(dataTable);
return ds.GetXmlSchema();
}
示例13: CtrlDataBind
/// <summary>
/// 不需要提供数据环境的数据绑定
/// </summary>
public override void CtrlDataBind()
{
BasePage page = this.Page as BasePage;
this.ViewState["sendpage"] = "";
NameObjectList paramlist = BuildParamList.BuildParams(page.PgParamXmlDoc);
string[] strParams = this.getStrParams();
int iPageSize = 0, iRecordCount = 0;
//分页,汇总数据
DataSet dsCount = new DataSet("汇总");
dsCount.EnforceConstraints = false;
this.CtrlXmlCount.Document = new XmlDataDocument(dsCount);
DataTable counttab = null;
if (dsCount.Tables.Count > 0) counttab = dsCount.Tables[0];
XmlDocument xmldocCount = this.CtrlXmlCount.Document;
xmldocCount.LoadXml("<DataSet><DataTableCount/></DataSet>");
xmldocCount.DocumentElement.Attributes.Append(xmldocCount.CreateAttribute("id"));
xmldocCount.DocumentElement.Attributes["id"].Value = this.CtrlXmlID + "_Sum";
xmldocCount.DocumentElement.Attributes.Append(xmldocCount.CreateAttribute("typexml"));
xmldocCount.DocumentElement.Attributes["typexml"].Value = "Count";
xmldocCount.DocumentElement.Attributes.Append(xmldocCount.CreateAttribute("itemname"));
xmldocCount.DocumentElement.Attributes["itemname"].Value = this.CtrlItemName;
//当前页数据
DataSet ds = new DataSet(this.CtrlXmlLand.ClientID);
ds.EnforceConstraints = false;
strParams = this.getStrParams();
page.PgQuery.FillDataSet(this.CtrlWorkItem.DataSrc, paramlist, strParams, ds);
this.CtrlDataSource = ds.Tables[this.CtrlWorkItem.DataSrc];
this.FillTabConfig(this.CtrlDataSource);
if (this.CtrlDataSource == null) leofun.CreateLogFile("错误:" + this.CtrlWorkItem.DataSrc);
//增加行光标列
if(null!=this.CtrlDataSource && !this.CtrlDataSource.Columns.Contains("RowNum"))
this.CtrlDataSource.Columns.Add("RowNum",Type.GetType("System.Int32"));
if (iPageSize < 1) iPageSize = 10;
int iPageIndex=1;
if(null!=this.ViewState["PageIndex" + CtrlWorkItem.DataSrc])
iPageIndex = Convert.ToInt32(this.ViewState["PageIndex" + CtrlWorkItem.DataSrc]);
for (int i = 0; null != this.CtrlDataSource && i < this.CtrlDataSource.Rows.Count; i++)
this.CtrlDataSource.Rows[i]["RowNum"] = i + 1+(iPageIndex-1)*iPageSize;
//如果是数字类型,值是0的,改为空的
for (int i = 0;null!=this.CtrlDataSource && i < this.CtrlDataSource.Columns.Count; i++)
{
DataColumn col = this.CtrlDataSource.Columns[i];
if ("rownum" == col.ColumnName.ToLower()) continue;
if ("Decimal" != col.DataType.Name && "Double" != col.DataType.Name && "Int16" != col.DataType.Name
&& "Int32" != col.DataType.Name && "Int64" != col.DataType.Name && "Single" != col.DataType.Name
&& "UInt16" != col.DataType.Name && "UInt32" != col.DataType.Name && "UInt64" != col.DataType.Name)
continue;
DataRow[] drs = this.CtrlDataSource.Select(col.ColumnName + "=0");
for (int j = 0; j < drs.Length; j++)
drs[j][i] = DBNull.Value;
}
//生成数据文档
this.CtrlXmlLand.Document = new XmlDataDocument(ds);
this.CtrlDBXmlDoc = this.CtrlXmlLand.Document;
XmlDocument xmldoc = this.CtrlXmlLand.Document;
if (xmldoc.DocumentElement == null)
xmldoc.AppendChild(xmldoc.CreateElement(this.CtrlXmlLand.ClientID));
if (null == xmldoc.DocumentElement.Attributes["id"])
xmldoc.DocumentElement.Attributes.Append(xmldoc.CreateAttribute("id"));
if (null == xmldoc.DocumentElement.Attributes["itemname"])
xmldoc.DocumentElement.Attributes.Append(xmldoc.CreateAttribute("itemname"));
if (null == xmldoc.DocumentElement.Attributes["typexml"])
xmldoc.DocumentElement.Attributes.Append(xmldoc.CreateAttribute("typexml"));
xmldoc.DocumentElement.Attributes["id"].Value = this.CtrlXmlID;
xmldoc.DocumentElement.Attributes["itemname"].Value = this.CtrlItemName;
xmldoc.DocumentElement.Attributes["typexml"].Value = "Data";
if (iRecordCount < this.CtrlDataSource.Rows.Count)
iRecordCount = this.CtrlDataSource.Rows.Count;
//当前页码,行记录个数
//在XmlCount数据岛增加TotalPage;PageIndex;PageSize,RecordCount数据
XmlNode xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("TotalPage"));
xmlNode.InnerText = (null == this.ViewState["TotalPages" + CtrlWorkItem.DataSrc]) ? "1" : this.ViewState["TotalPages" + CtrlWorkItem.DataSrc].ToString();
xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("PageIndex"));
xmlNode.InnerText = (null == this.ViewState["PageIndex" + CtrlWorkItem.DataSrc]) ? "1" : this.ViewState["PageIndex" + CtrlWorkItem.DataSrc].ToString();
xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("PageSize"));
xmlNode.InnerText = iPageSize.ToString();
xmlNode = xmldocCount.DocumentElement.FirstChild.AppendChild(xmldocCount.CreateElement("RecordCount"));
xmlNode.InnerText = iRecordCount.ToString();
//删除区数据
this.CtrlXmlDelete.Document = new XmlDocument();
XmlDocument xmldocDel = this.CtrlXmlDelete.Document;
xmldocDel.AppendChild(xmldocDel.CreateElement(xmldoc.DocumentElement.LocalName));
xmldocDel.DocumentElement.Attributes.Append(xmldocDel.CreateAttribute("id"));
xmldocDel.DocumentElement.Attributes["id"].Value = this.CtrlXmlID + "_Delete";
xmldocDel.DocumentElement.Attributes.Append(xmldocDel.CreateAttribute("typexml"));
xmldocDel.DocumentElement.Attributes["typexml"].Value = "Delete";
xmldocDel.DocumentElement.Attributes.Append(xmldocDel.CreateAttribute("itemname"));
xmldocDel.DocumentElement.Attributes["itemname"].Value = this.CtrlItemName;
//数据岛结构信息
this.CtrlXmlSchema.Document = new XmlDocument();
this.CtrlXmlSchema.Document.LoadXml(ds.GetXmlSchema());
this.CtrlDBSchema = this.CtrlXmlSchema.Document;
this.setSchema();
//字典绑定
this.CtrlDataBindDict();
//处理输出的字段格式
//.........这里部分代码省略.........
示例14: WriteDataset
private void WriteDataset(DataSet ds)
{
output.Append('{');
if ( jsonParameters.UseExtensions)
{
WritePair("$schema", jsonParameters.UseOptimizedDatasetSchema ? (object)GetSchema(ds) : ds.GetXmlSchema());
output.Append(',');
}
bool tablesep = false;
foreach (DataTable table in ds.Tables)
{
if (tablesep) output.Append(",");
tablesep = true;
WriteDataTableData(table);
}
output.Append('}');
}
示例15: loadXMLRSS2_0
public bool loadXMLRSS2_0(channel ch, string rss)
{
using (DataSet rssData = new DataSet())
{
System.IO.StringReader sr = new System.IO.StringReader(rss);
DataSet ds2 = new DataSet();
rssData.ReadXmlSchema("RSS-2_0-Schema.xsd");
//rssData.InferXmlSchema(sr, null);
rssData.EnforceConstraints = false;
rssData.ReadXml(sr, XmlReadMode.Auto);
string str = rssData.GetXmlSchema();
if (rssData.Tables.Contains("channel"))
{
foreach (DataRow dataRow in rssData.Tables["channel"].Rows)
{
//ch.title = dataRowContains("title", dataRow, rssData);//Convert.ToString(dataRow["title"]);
//rss_sub.set_title(ch.title);
ch.description = dataRowContains("description", dataRow, rssData);//Convert.ToString(dataRow["description"]);
ch.link = dataRowContains("link", dataRow, rssData);//Convert.ToString(dataRow["link"]);
ch.lastBuildDate = dataRowContains("lastBuildDate", dataRow, rssData);//Convert.ToString(dataRow["lastBuildDate"]);
ch.pubDate = dataRowContains("pubDate", dataRow, rssData);//Convert.ToString(dataRow["pubDate"]);
ch.ttl = dataRowContains("ttl", dataRow, rssData);//Convert.ToString(dataRow["ttl"]);
foreach (DataRow im in rssData.Tables["image"].Rows)
{
ch.imageUrl = im["url"].ToString();
ch.imageTitle = im["title"].ToString();
}
int counter = 0;
if (ch.pubDate.Length > 6)
{
ch.pubDate = ch.pubDate.Substring(0, ch.pubDate.Length - 6);
}
foreach (DataRow itemRow in rssData.Tables["item"].Rows)
{
Item inside = new Item();
inside.titleI = dataRowContains("title", itemRow, rssData);//Convert.ToString(itemRow["title"]);
string desc = dataRowContains("description", itemRow, rssData);// Convert.ToString(itemRow["description"]);
processDescription(desc, inside);
inside.linkI = dataRowContains("link", itemRow, rssData);//Convert.ToString(itemRow["link"]);
inside.guidI = dataRowContains("guid", itemRow, rssData);//Convert.ToString(itemRow["guid"]);
//inside.guidI = Convert.ToString(rssData.Tables["guid"].Rows[counter].ItemArray[1]);
inside.pubDateI = dataRowContains("pubDate", itemRow, rssData);//Convert.ToString(itemRow["pubDate"]);
if(inside.pubDateI.Length > 6)
{
inside.pubDateI = inside.pubDateI.Substring(0, inside.pubDateI.Length - 6);
}
inside.subscription = ch.title;
ch.item.Add(inside);
counter++;
if (counter > ch.maxItems) { break; }
}
/*channel rem = channels.Where(c => c.title == name).FirstOrDefault();
if (rem != null)
{
channels.Remove(rem);
}
if (findChannelName(ch.title) == null)
{
channels.Add(ch);
}
*/
}
}
return true;
}
}