如何在C#asp.net中将字符串数据转换为数据表?

如何在C#asp.net中将字符串数据转换为数据表?,c#,asp.net,C#,Asp.net,到目前为止,我已尝试将数据表转换为字符串,如下所示:- public static string convertDataTableToString(DataTable dataTable) { string data = string.Empty; int rowsCount = dataTable.Rows.Count; for (int i = 0; i < rowsCount; i++) {

到目前为止,我已尝试将
数据表
转换为
字符串
,如下所示:-

public static string convertDataTableToString(DataTable dataTable)
    {
        string data = string.Empty;
        int rowsCount = dataTable.Rows.Count;
        for (int i = 0; i < rowsCount; i++)
        {
            DataRow row = dataTable.Rows[i];
            int columnsCount = dataTable.Columns.Count;
            for (int j = 0; j < columnsCount; j++)
            {
                data += dataTable.Columns[j].ColumnName + "~" + row[j];
                if (j == columnsCount - 1)
                {
                    if (i != (rowsCount - 1))
                        data += "$";
                }
                else
                    data += "|";
            }
        }
        return data;
    }
公共静态字符串convertDataTableToString(DataTable DataTable)
{
字符串数据=string.Empty;
int rowscont=dataTable.Rows.Count;
for(int i=0;i

现在我想再次将返回的字符串转换为
DataTable

您可以使用
String.Split
将字符串拆分为行和单元格。如果列设置总是相同的(应该是一样的),那么您只需在第一次迭代时通过单元格添加列即可

下面是一个简单的例子:

public static DataTable convertStringToDataTable(string data)
{
    DataTable dataTable = new DataTable();
    bool columnsAdded = false;
    foreach(string row in data.Split('$'))
    {
        DataRow dataRow = dataTable.NewRow();
        foreach(string cell in row.Split('|'))
        {
            string[] keyValue = cell.Split('~');
            if (!columnsAdded)
            {
                DataColumn dataColumn = new DataColumn(keyValue[0]);
                dataTable.Columns.Add(dataColumn);
            }
            dataRow[keyValue[0]] = keyValue[1];
        }
        columnsAdded = true;
        dataTable.Rows.Add(dataRow);
    }
    return dataTable;
}

或者,您可以在循环之前获得所有列的列表,但这种方法可能更容易实现您的目的。

您可以使用
String.Split
将字符串拆分为行和单元格。如果列设置总是相同的(应该是一样的),那么您只需在第一次迭代时通过单元格添加列即可

下面是一个简单的例子:

public static DataTable convertStringToDataTable(string data)
{
    DataTable dataTable = new DataTable();
    bool columnsAdded = false;
    foreach(string row in data.Split('$'))
    {
        DataRow dataRow = dataTable.NewRow();
        foreach(string cell in row.Split('|'))
        {
            string[] keyValue = cell.Split('~');
            if (!columnsAdded)
            {
                DataColumn dataColumn = new DataColumn(keyValue[0]);
                dataTable.Columns.Add(dataColumn);
            }
            dataRow[keyValue[0]] = keyValue[1];
        }
        columnsAdded = true;
        dataTable.Rows.Add(dataRow);
    }
    return dataTable;
}

或者,您可以在循环之前获得所有列的列表,但这种方法可能更容易实现您的目的。

您可以使用
String.Split
将字符串拆分为行和单元格。如果列设置总是相同的(应该是一样的),那么您只需在第一次迭代时通过单元格添加列即可

下面是一个简单的例子:

public static DataTable convertStringToDataTable(string data)
{
    DataTable dataTable = new DataTable();
    bool columnsAdded = false;
    foreach(string row in data.Split('$'))
    {
        DataRow dataRow = dataTable.NewRow();
        foreach(string cell in row.Split('|'))
        {
            string[] keyValue = cell.Split('~');
            if (!columnsAdded)
            {
                DataColumn dataColumn = new DataColumn(keyValue[0]);
                dataTable.Columns.Add(dataColumn);
            }
            dataRow[keyValue[0]] = keyValue[1];
        }
        columnsAdded = true;
        dataTable.Rows.Add(dataRow);
    }
    return dataTable;
}

或者,您可以在循环之前获得所有列的列表,但这种方法可能更容易实现您的目的。

您可以使用
String.Split
将字符串拆分为行和单元格。如果列设置总是相同的(应该是一样的),那么您只需在第一次迭代时通过单元格添加列即可

下面是一个简单的例子:

public static DataTable convertStringToDataTable(string data)
{
    DataTable dataTable = new DataTable();
    bool columnsAdded = false;
    foreach(string row in data.Split('$'))
    {
        DataRow dataRow = dataTable.NewRow();
        foreach(string cell in row.Split('|'))
        {
            string[] keyValue = cell.Split('~');
            if (!columnsAdded)
            {
                DataColumn dataColumn = new DataColumn(keyValue[0]);
                dataTable.Columns.Add(dataColumn);
            }
            dataRow[keyValue[0]] = keyValue[1];
        }
        columnsAdded = true;
        dataTable.Rows.Add(dataRow);
    }
    return dataTable;
}

或者,您可以在循环之前获得所有列的列表,但这种方法可能更容易达到您的目的。

Classic但是,您尝试过什么吗?为什么不使用XML
DataTable
已经有了与XML之间的转换方法。@D Stanley我必须加密字符串,然后在其他应用程序中对其进行递减,并将其转换为数据table@SonerGönül我在尝试,但总是得到不同的结果。请为否决投票发表评论?经典,但是,你尝试过什么吗?为什么不使用XML
DataTable
已经有了与XML之间的转换方法。@D Stanley我必须加密字符串,然后在其他应用程序中对其进行递减,并将其转换为数据table@SonerGönül我在尝试,但总是得到不同的结果。请为否决投票发表评论?经典,但是,你尝试过什么吗?为什么不使用XML
DataTable
已经有了与XML之间的转换方法。@D Stanley我必须加密字符串,然后在其他应用程序中对其进行递减,并将其转换为数据table@SonerGönül我在尝试,但总是得到不同的结果。请为否决投票发表评论?经典,但是,你尝试过什么吗?为什么不使用XML
DataTable
已经有了与XML之间的转换方法。@D Stanley我必须加密字符串,然后在其他应用程序中对其进行递减,并将其转换为数据table@SonerGönül我正在努力,但总是得到不同的结果。请对否决票发表评论?