SQLServer -------- 一表多用,将关联的表变成字符串存储(C# 字符转datatable)

在进行表设计的时候,表之间的关联关系有很多,而关联表的有用字段可能很少而且用到的数据量也不会太大,可以将关联的表变成字符串存储

如:一个订单有多个供应商订单,那么可以吧供应商信息存储到订单表其中一个字段中

 

上述:同一行不同列使用 ~ 线分隔,不同行使用 | 分隔

在借助字符串转换为dataTable 就可以得到一个被关联的供应商表了

 /// <summary>
    /// 1~2|3~4 与DataTable的相互转化,colName列名集合
    /// </summary>
    /// <param name="ss"></param>
    /// <param name="colName"></param>
    /// <returns></returns>
    public DataTable ConvertStrToDt(string ss, List<string> colName)
    {
        DataTable dt = new DataTable();

        string[] s1 = ss.Split('|');
        for (int i = 0; i <= s1.Length - 1; i++)
        {
            string[] s2 = s1[i].Split('~');
            DataRow drow = dt.NewRow();

            for (int j = 0; j <= colName.Count - 1; j++)
            {
                if (i == 0)
                    dt.Columns.Add(colName[j]);
                drow[colName[j]] = s2[j];
            }
            dt.Rows.Add(drow);
        }
        return dt;
    }

不同的数据库设计,对程序的影响还是很大的,这只是一种实现方式

 

posted on 2021-06-08 23:13  obge  阅读(145)  评论(0编辑  收藏  举报