C# 无法隐式转换类型';int';至';int[]和#x27;
我的C# 无法隐式转换类型';int';至';int[]和#x27;,c#,asp.net,C#,Asp.net,我的int[]声明如下 if (oAuthenticate.getTaskID(out m_oDataSet1, "uspgetTaskID")) { for (int iTaskid = 0; iTaskid < m_oDataSet1.Tables[0].Rows.Count; iTaskid++) { iroleID = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
int[]
声明如下
if (oAuthenticate.getTaskID(out m_oDataSet1, "uspgetTaskID"))
{
for (int iTaskid = 0; iTaskid < m_oDataSet1.Tables[0].Rows.Count; iTaskid++)
{
iroleID = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
strTaskID = m_oDataSet1.Tables[0].Rows[iTaskid]["TaskID"].ToString();
arrTaskID.Add(strTaskID);
}
}
int[]iroleID=newint[]{}代码>
我从数据库获取值并分配给iroleid
的代码如下
if (oAuthenticate.getTaskID(out m_oDataSet1, "uspgetTaskID"))
{
for (int iTaskid = 0; iTaskid < m_oDataSet1.Tables[0].Rows.Count; iTaskid++)
{
iroleID = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
strTaskID = m_oDataSet1.Tables[0].Rows[iTaskid]["TaskID"].ToString();
arrTaskID.Add(strTaskID);
}
}
if(oAuthenticate.getTaskID(out m_oDataSet1,“usgettaskid”))
{
对于(int-iTaskid=0;iTaskid
但是我遇到了一个错误,正如前面提到的无法隐式地将类型“int”转换为“int[]”
任何人都可以帮助我这一点也不奇怪。看
iroleID = Convert.ToInt32(...);
Convert.ToIn32
会产生int
,就像编译器声称的那样。
或者做如下操作:
if (oAuthenticate.getTaskID(out m_oDataSet1, "uspgetTaskID"))
{
var iroleID = new int[m_oDataSet1.Tables[0].Rows.Count];
for (int iTaskid = 0; iTaskid < m_oDataSet1.Tables[0].Rows.Count; iTaskid++)
{
iroleID[iTaskid] = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
/* ... */
}
}
if(oAuthenticate.getTaskID(out m_oDataSet1,“usgettaskid”))
{
var iroleID=newint[m_oDataSet1.Tables[0].Rows.Count];
对于(int-iTaskid=0;iTaskid
或者重新考虑你的算法
PS:我很难告诉你具体该怎么做,因为你没有说明iRoleID的目的是什么。这一点也不奇怪。看
iroleID = Convert.ToInt32(...);
Convert.ToIn32
会产生int
,就像编译器声称的那样。
或者做如下操作:
if (oAuthenticate.getTaskID(out m_oDataSet1, "uspgetTaskID"))
{
var iroleID = new int[m_oDataSet1.Tables[0].Rows.Count];
for (int iTaskid = 0; iTaskid < m_oDataSet1.Tables[0].Rows.Count; iTaskid++)
{
iroleID[iTaskid] = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
/* ... */
}
}
if(oAuthenticate.getTaskID(out m_oDataSet1,“usgettaskid”))
{
var iroleID=newint[m_oDataSet1.Tables[0].Rows.Count];
对于(int-iTaskid=0;iTaskid
或者重新考虑你的算法
PS:我很难告诉你具体该怎么做,因为你没有说明iRoleID的目的是什么。当然了
iroleID = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
iroleID
是一个int
数组Convert.ToInt32()
返回一个整数。
所以:
-必须声明变量tu storeConvert.ToInt32()
value
或
-只需将Convert.ToInt32()
结果添加到iroleID
(iroleID.add(Convert.ToInt32(…)
))即可
iroleID = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
iroleID
是一个int
数组Convert.ToInt32()
返回一个整数。
所以:
-必须声明变量tu storeConvert.ToInt32()
value
或
-只需将Convert.ToInt32()
结果添加到iroleID
(iroleID.add(Convert.ToInt32(…)
)当然,不能只将int
值分配给int[]
变量。您可能需要将项目添加到集合中。更改您的int[]iroleID=newint[]{}代码>到列表iroleID=新列表()代码>然后将代码更改为:
if (oAuthenticate.getTaskID(out m_oDataSet1, "uspgetTaskID"))
{
for (int iTaskid = 0; iTaskid < m_oDataSet1.Tables[0].Rows.Count; iTaskid++)
{
iroleID.Add(Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString()));
strTaskID = m_oDataSet1.Tables[0].Rows[iTaskid]["TaskID"].ToString();
arrTaskID.Add(strTaskID);
}
}
if(oAuthenticate.getTaskID(out m_oDataSet1,“usgettaskid”))
{
对于(int-iTaskid=0;iTaskid
当然,不能只将int
值赋给int[]
变量。您可能需要将项目添加到集合中。更改您的int[]iroleID=newint[]{}代码>到列表iroleID=新列表()代码>然后将代码更改为:
if (oAuthenticate.getTaskID(out m_oDataSet1, "uspgetTaskID"))
{
for (int iTaskid = 0; iTaskid < m_oDataSet1.Tables[0].Rows.Count; iTaskid++)
{
iroleID.Add(Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString()));
strTaskID = m_oDataSet1.Tables[0].Rows[iTaskid]["TaskID"].ToString();
arrTaskID.Add(strTaskID);
}
}
if(oAuthenticate.getTaskID(out m_oDataSet1,“usgettaskid”))
{
对于(int-iTaskid=0;iTaskid
使用整型数组的索引来分配值,不能将整数直接分配给整型数组
iroleID[0] = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
使用整型数组的索引来赋值,不能将整型数组直接赋值给整型数组
iroleID[0] = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
这将把RoleID columns值转换为整数。您正在获取这个整数并试图将其分配给一个整数数组,这当然是不可能的。你的想法是什么?如果要用所有ID填充单个数组,您可以执行与之前相同的操作,但将其分配给普通整数,然后将该整数添加到列表或其他内容中
还可以使用普通ADO.NET从该列检索所有值并将其转换为列表。那会更好
这将把RoleID columns值转换为整数。您正在获取这个整数并试图将其分配给一个整数数组,这当然是不可能的。你的想法是什么?如果要用所有ID填充单个数组,您可以执行与之前相同的操作,但将其分配给普通整数,然后将该整数添加到列表或其他内容中
还可以使用普通ADO.NET从该列检索所有值并将其转换为列表。这样会更好。有一个问题已经解决,您必须将它添加到一个数组中,给出您想要的位置
iroleID[iTaskid] = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
另一个问题是,创建一个数组。必须给出数组的长度
int[]iroleID=newint[m_oDataSet1.Tables[0].Rows.Count]代码>一个问题已经得到解答,您必须将其添加到给定所需位置的数组中
iroleID[iTaskid] = Convert.ToInt32(m_oDataSet1.Tables[0].Rows[iTaskid]["RoleID"].ToString());
另一个问题是,创建一个数组。必须给出数组的长度
int[]iroleID=newint[m_oDataSet1.Tables[0].Rows.Count]代码>可能重复:放置一个DataRow行=m_oDataSet1.表[0].行[iTaskid]代码>在循环代码和引用的开头