电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Datatbel和string之间的相互转换


发布日期:2020/4/22
 

今天在做一个需求的时候需要将datatable转化string下面是二者之间的一个可逆转换

Datatable 到 string

public static string DataTableToString(DataTable dt)

{

//!@&#$%^&*为字段的拼接字符串

//为了防止连接字符串不在DataTable数据中存在特意将拼接字符串写成特殊的字符!

StringBuilder strData = new StringBuilder();

StringWriter sw = new StringWriter();

//DataTable 的当前数据结构以 XML 架构形式写入指定的流

dtWriteXmlSchema(sw);

strDataAppend(swToString());

swClose();

strDataAppend(@&@);

for (int i = ; i < dtRowsCount;i++) //遍历dt的行

{

DataRow row = dtRows[i];

if (i > ) //从第二行数据开始加上行的连接字符串

{

strDataAppend(#$%);

}

for (int j = ; j < dtColumnsCount; j++) //遍历row的列

{

if (j > ) //从第二个字段开始加上字段的连接字符串

{

strDataAppend(^&*);

}

strDataAppend(ConvertToString(row[j])); //取数据

}

}

return strDataToString();

}

string 到Datatable

public static DataTable StringToDataTable(string strdata)

{

if (stringIsNullOrEmpty(strdata))

{

return null;

}

DataTable dt = new DataTable();

string[] strSplit = {@&@};

string[] strRow = {#$%}; //分解行的字符串

string[] strColumn = {^&*}; //分解字段的字符串

string[] strArr = strdataSplit(strSplit StringSplitOptionsNone);

StringReader sr = new StringReader(strArr[]);

dtReadXmlSchema(sr);

srClose();

string strTable = strArr[]; //取表的数据

if (!stringIsNullOrEmpty(strTable))

{

string[] strRows = strTableSplit(strRow StringSplitOptionsNone); //解析成行的字符串数组

for (int rowIndex = ; rowIndex < strRowsLength; rowIndex++) //行的字符串数组遍历

{

string vsRow = strRows[rowIndex]; //取行的字符串

string[] vsColumns = vsRowSplit(strColumn StringSplitOptionsNone); //解析成字段数组

dtRowsAdd(vsColumns);

}

}

return dt;

}

上一篇:使用MyGeneration创建模板

下一篇:C/S中利用域控进行SSO的简单实现方式