二维数组转DataTable 有自定义数据类型怎么转?转之后怎么正确读取

hhfh 2008-09-10 11:13:56
我放在DataTable(DataView)了

string[,] b = new string[4, 3] { { "11", "12", 自己的定义数据1}, { "21", "22", 自己的定义数据2 }, { "51", "22", 自己的定义数据3 }, { "41", "22", 自己的定义数据4} };
DataTable dt = new DataTable();
DataRow dr;
for (int i = 0; i < b.GetLength(1); i++)
{
dt.Columns.Add("m"+i.ToString());
}
for (int i = 0; i < b.GetLength(0); i++)
{
dr = dt.NewRow();
for (int j = 0; j < b.GetLength(1); j++)
{
dr[j] = b[i, j];


}
dt.Rows.Add(dr);
}
怎么定义列的字段定义

自己的定义数据1是我定义数据类型 如myRec

然后我读取
for (int i = 0; i < dt.Rows.Count; i++)

{
myRec currentRecord = (myRec)dt.Rows[i][2];
}
}

提示string转myRec类型出错
...全文
188 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hustcyb 2008-09-10
dt.Column.Add(参数), 这个参数是这一列的字符串值索引,说简单一点,dt.Column.Add(参数)只是给这一列起一个好记一点的名字.
数据是存在Row[参数]中,存数据时,先装箱(转换成object)存入DataTable,取数据时你再折箱,转换成你的原始类型.
回复
hhfh 2008-09-10

dt.Columns.Add("p1");
dt.Columns.Add("newRecord"); //字段类型怎么转为myRec 类型

DataRow dr;
for (int i = 0; i < 10; i++)

{
myRec newRecord=....; //自己的定义数据

dr =dt.NewRow();
dr[0] = i;
dr[1] = newRecord; //字段类型怎么转为myRec 类型
dt.Rows.Add(dr);
}
回复
hustcyb 2008-09-10
你插入前已经把你自定义的数据类型变成了string类型,当然后面转不过来了,把
string[,] b = new string[4, 3] { { "11", "12", 自己的定义数据1}, { "21", "22", 自己的定义数据2 }, { "51", "22", 自己的定义数据3 }, { "41", "22", 自己的定义数据4} };

改为:

object[,] b = new object[4, 3] { { "11", "12", 自己的定义数据1}, { "21", "22", 自己的定义数据2 }, { "51", "22", 自己的定义数据3 }, { "41", "22", 自己的定义数据4} };
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2008-09-10 11:13
社区公告

让您成为最强悍的C#开发者