C# 如何在C语言中将数据表单元格值转换为对象数组#
这是我的密码C# 如何在C语言中将数据表单元格值转换为对象数组#,c#,asp.net,object,datatable,C#,Asp.net,Object,Datatable,这是我的密码 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"); dtentercode
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[]'.
如何解决。你可以试试
object[] objrow = (object[]) Convert.ToString(dtentercodemfm.Rows[0][0]).Split(',') ;
这将起作用(经过尝试和测试)
创建列时,请执行此操作
dtentercodemfm.Columns.Add("objrow", typeof (object[]));
dtentercodemfm.Columns.Add("objrow1", typeof (object[]));
为什么这样做
因为当您在创建列时不提供类型时,默认类型是String。所以数据以字符串形式存储在DB中,即“System.Object”。您不需要这样写问题吗
dtentercodemfm.Columns.Add("objrow");
dtentercodemfm.Rows.Add(objrow);
dtentercodemfm.Rows.Add(objrow1);
dtentercodemfm.AcceptChanges();
添加2行和1列,
您正在执行相反的操作,添加1列,然后添加2行我认为
dtentercodemfm.rows[0][0]
返回string
从string
到对象数组没有显式对话。为什么不直接使用objectobjrow=(object)dtentercodemfm.Rows[0][0]代码>而不是?然后你可以将这些值添加到数组中。这是一个对象数组,那么如何使用对象呢explain@user1463105阅读我的答案。