1. DataTable转换为Json
public static string DataTableToJson(string jsonName, DataTable dt)
{
StringBuilder Json = new StringBuilder();
Json.Append("[");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
Json.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
Json.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":/"" + dt.Rows[i][j].ToString() + "/"");
if (j < dt.Columns.Count - 1)
{
Json.Append(",");
}
}
Json.Append("}");
if (i < dt.Rows.Count - 1)
{
Json.Append(",");
}
}
}
Json.Append("]");
return Json.ToString();
}
2.DataTable自增列
public DataTable GetDataTable(DataTable srcTable)
{
bool isContains = srcTable.Columns.Contains("Id");
if (isContains == false)
{
DataTable dstntnTable = new DataTable();
dstntnTable.Columns.Add("Id", typeof(Int32));
for (int i = 0; i < srcTable.Columns.Count; i++)
dstntnTable.Columns.Add(srcTable.Columns[i].ColumnName, srcTable.Columns[i].DataType);
int srcColCount = srcTable.Columns.Count;
int srcRowCount = srcTable.Rows.Count;
int dstntnRowCount = 0;
for (int j = 0; j < srcRowCount; j++)
{
DataRow newRow = dstntnTable.NewRow();
newRow[0] = (++dstntnRowCount);
for (int k = 0; k < srcColCount; k++)
newRow[k + 1] = srcTable.Rows[j][k];
dstntnTable.Rows.Add(newRow);
}
return dstntnTable;
}
return srcTable;
}
3.DataToXml
/// <summary>
/// 生成文件
/// </summary>
/// <param name="val"></param>
/// <param name="filename"></param>
public void CreateXml(string val, string filename)
{
UnicodeEncoding ucode = new UnicodeEncoding();
StreamWriter sw = new StreamWriter(Server.MapPath(filename));
sw.WriteLine("<?xml version=/"1.0/" encoding=/"utf-8/"?>");
sw.WriteLine(val);
sw.Close();
sw.Dispose();
}
/// <summary>
/// 转换成XML格式字符串
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string DataTableToXml(DataTable dt)
{
StringBuilder strXml = new StringBuilder();
strXml.AppendLine("<XmlTable>");
for (int i = 0; i < dt.Rows.Count; i++)
{
strXml.AppendLine(" <rows>");
for (int j = 0; j < dt.Columns.Count; j++)
{
strXml.AppendLine(" <" + dt.Columns[j].ColumnName + ">" + dt.Rows[i][j] + "</" + dt.Columns[j].ColumnName + ">");
}
strXml.AppendLine(" </rows>");
}
strXml.AppendLine("</XmlTable>");
return strXml.ToString();
}