这是我的代码,
object[] objrow = new object[]{"Test","test1","test2","test3","test4"};
object[] objrow1 = new object[]{"Test","test1","test2","test3","test4"};
DataTable dtentercodemfm = new DataTable();
dtentercodemfm.Columns.Add("objrow");
dtentercodemfm.Columns.Add("objrow1");
dtentercodemfm.Rows.Add(objrow, objrow1);
获取此数据时
object[] objrow = (object[])dtentercodemfm.Rows[0][0];
object[] objrow1 = (object[])dtentercodemfm.Rows[0][1];
给我错误
Unable to cast object of type 'System.String' to type 'System.Object[]'.
如何解决。
答案 0 :(得分:0)
你可以尝试
object[] objrow = (object[]) Convert.ToString(dtentercodemfm.Rows[0][0]).Split(',') ;
答案 1 :(得分:0)
这可行(尝试和测试)。
创建列时执行此操作
dtentercodemfm.Columns.Add("objrow", typeof (object[]));
dtentercodemfm.Columns.Add("objrow1", typeof (object[]));
为什么会这样?
因为在创建列时不提供类型,所以采用默认类型String。因此,数据以字符串形式存储在DB中,即“System.Object”。
答案 2 :(得分:0)
你不应该像这样写下你的问题吗
dtentercodemfm.Columns.Add("objrow");
dtentercodemfm.Rows.Add(objrow);
dtentercodemfm.Rows.Add(objrow1);
dtentercodemfm.AcceptChanges();
添加2行1列 你正在做反向,添加1列,并添加2行