附加信息:无法将类型 'void' 隐式转换为 'object' asp.net MVC 5
Additional information: Cannot implicitly convert type 'void' to 'object' asp.net MVC 5
我用来循环的一个是foreach
,另一个是for loop
。 Foreach 循环用于 system.Data
和 for loop
用于数组数据。我正在尝试匹配两个对象的 属性 如果匹配,则将值传递给我的 Oracle Procedure 以保存数据。这是我的代码:
foreach (System.Data.DataRow dz in ViewBag.MenuData2.Rows)
{
ViewBag.comp = @dz["mnud_text"];
for (int i =0; i<data.Length;i++ )
{
if (ViewBag.comp == data[i])
{
if (@dz["chk"].ToString() == "0" || @dz["umnu_oid"].ToString() == "N")
{
actv = "1";
}
string user_id = data[i];
ds = new DataSet();
ds = _clsDataAccess.update_menu_permission("00003", ViewBag.comp.ToString(), actv,"N", "00002");
}
}
}
程序是:
public void update_menu_permission(string user_id, string menu_id, string actv, string oid, string euser)
{
conn = new OracleConnection(clsConnection.ConnectionSave);
conn.Open();
if (oid == "N")
{
strComm = "insert into thlhr.t_umnu (oid, umnu_mnud, umnu_user, umnu_actv, iuser, euser) values "
+ "(:oid, :umnu_mnud, :umnu_user, :umnu_actv, :iuser, :euser)";
cmd = new OracleCommand(strComm, conn);
cmd.Parameters.Add("oid", OracleType.VarChar).Value = "UMNU" + user_id.ToUpper() + menu_id.ToUpper();
cmd.Parameters.Add("umnu_mnud", OracleType.VarChar).Value = menu_id;
cmd.Parameters.Add("umnu_user", OracleType.VarChar).Value = user_id;
cmd.Parameters.Add("umnu_actv", OracleType.VarChar).Value = actv;
cmd.Parameters.Add("iuser", OracleType.VarChar).Value = euser;
cmd.Parameters.Add("euser", OracleType.VarChar).Value = euser;
}
else
{
strComm = "update thlhr.t_umnu set umnu_actv = :umnu_actv, euser = :euser where oid ='" + oid + "'";
cmd = new OracleCommand(strComm, conn);
cmd.Parameters.Add("umnu_actv", OracleType.VarChar).Value = actv;
cmd.Parameters.Add("euser", OracleType.VarChar).Value = euser;
}
cmd.ExecuteNonQuery();
conn.Dispose();
conn.Close();
}
当我传递值时出现这个错误"Additional information: Cannot implicitly convert type 'void' to 'object'"
请帮我解决这个问题。如果需要更多信息,请告诉我。
您对以下行有疑问:
ds = _clsDataAccess.update_menu_permission("00003", ViewBag.comp.ToString(), actv,"N", "00002");
更新方法没有 return 任何东西。
此外,用 using 块包装代码也是一种很好的做法。
更新:
你真的不需要:
ds = new DataSet();
ds = _clsDataAccess.update_menu_permission("00003", ViewBag.comp.ToString(), actv,"N", "00002");
只需致电:
_clsDataAccess.update_menu_permission("00003", ViewBag.comp.ToString(), actv,"N", "00002");
我用来循环的一个是foreach
,另一个是for loop
。 Foreach 循环用于 system.Data
和 for loop
用于数组数据。我正在尝试匹配两个对象的 属性 如果匹配,则将值传递给我的 Oracle Procedure 以保存数据。这是我的代码:
foreach (System.Data.DataRow dz in ViewBag.MenuData2.Rows)
{
ViewBag.comp = @dz["mnud_text"];
for (int i =0; i<data.Length;i++ )
{
if (ViewBag.comp == data[i])
{
if (@dz["chk"].ToString() == "0" || @dz["umnu_oid"].ToString() == "N")
{
actv = "1";
}
string user_id = data[i];
ds = new DataSet();
ds = _clsDataAccess.update_menu_permission("00003", ViewBag.comp.ToString(), actv,"N", "00002");
}
}
}
程序是:
public void update_menu_permission(string user_id, string menu_id, string actv, string oid, string euser)
{
conn = new OracleConnection(clsConnection.ConnectionSave);
conn.Open();
if (oid == "N")
{
strComm = "insert into thlhr.t_umnu (oid, umnu_mnud, umnu_user, umnu_actv, iuser, euser) values "
+ "(:oid, :umnu_mnud, :umnu_user, :umnu_actv, :iuser, :euser)";
cmd = new OracleCommand(strComm, conn);
cmd.Parameters.Add("oid", OracleType.VarChar).Value = "UMNU" + user_id.ToUpper() + menu_id.ToUpper();
cmd.Parameters.Add("umnu_mnud", OracleType.VarChar).Value = menu_id;
cmd.Parameters.Add("umnu_user", OracleType.VarChar).Value = user_id;
cmd.Parameters.Add("umnu_actv", OracleType.VarChar).Value = actv;
cmd.Parameters.Add("iuser", OracleType.VarChar).Value = euser;
cmd.Parameters.Add("euser", OracleType.VarChar).Value = euser;
}
else
{
strComm = "update thlhr.t_umnu set umnu_actv = :umnu_actv, euser = :euser where oid ='" + oid + "'";
cmd = new OracleCommand(strComm, conn);
cmd.Parameters.Add("umnu_actv", OracleType.VarChar).Value = actv;
cmd.Parameters.Add("euser", OracleType.VarChar).Value = euser;
}
cmd.ExecuteNonQuery();
conn.Dispose();
conn.Close();
}
当我传递值时出现这个错误"Additional information: Cannot implicitly convert type 'void' to 'object'"
请帮我解决这个问题。如果需要更多信息,请告诉我。
您对以下行有疑问:
ds = _clsDataAccess.update_menu_permission("00003", ViewBag.comp.ToString(), actv,"N", "00002");
更新方法没有 return 任何东西。
此外,用 using 块包装代码也是一种很好的做法。
更新:
你真的不需要:
ds = new DataSet();
ds = _clsDataAccess.update_menu_permission("00003", ViewBag.comp.ToString(), actv,"N", "00002");
只需致电:
_clsDataAccess.update_menu_permission("00003", ViewBag.comp.ToString(), actv,"N", "00002");