Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建没有实体框架的数据_C#_Asp.net Mvc - Fatal编程技术网

C# 创建没有实体框架的数据

C# 创建没有实体框架的数据,c#,asp.net-mvc,C#,Asp.net Mvc,我试图在没有实体框架的情况下使用ASP.NET MVC将数据插入数据库,但它无法工作 我尝试了以下教程: 这是我的控制器: public class AdresaController : Controller { private OracleConnection conn; public AdresaController() { Connection connection = new Connection(); conn = con

我试图在没有实体框架的情况下使用ASP.NET MVC将数据插入数据库,但它无法工作

我尝试了以下教程:

这是我的控制器:

public class AdresaController : Controller
{
   private OracleConnection conn;

    public AdresaController()
    {
        Connection connection = new Connection();
        conn = connection.GetOracleConnection();
    }

    public ActionResult Create()
    {
        return View();
    }

    // POST: Adresa/Create
    [HttpPost]
    public ActionResult Create(AdresaModel obAdresa)
    {
        try
        {
            AdresaRepository x = new AdresaRepository(conn);
            string result = x.CreateAdr(obAdresa);
            ViewData["result"] = result;
            ModelState.Clear();
            return View();
        }
        catch
        {
            return View();
        }
    }
}
这是我的存储库:

public class AdresaRepository
{
    private OracleConnection oracleConnection;

    public AdresaRepository(OracleConnection oracleConnection)
    {
        this.oracleConnection = oracleConnection;
    }

    public string CreateAdr(AdresaModel obAdresa)//
    {
        string result = "";

        try
        {
            string oString = "insert into adresa(id_adresa, strada, nr_str, bloc, localitate_id_loc) values(@id_adresa, @strada, @nr_str, @bloc, @localitate_id_loc)";
            var cmdc = new OracleCommand(oString, oracleConnection);

            cmdc.CommandType = CommandType.StoredProcedure;

            cmdc.Parameters.Add(new OracleParameter("@id_adresa", obAdresa.IdAdresa));
            cmdc.Parameters.Add(new OracleParameter("@strada", obAdresa.Strada));
            cmdc.Parameters.Add(new OracleParameter("@nr_str", obAdresa.NrStrada));
            cmdc.Parameters.Add(new OracleParameter("@bloc", obAdresa.Bloc));
            cmdc.Parameters.Add(new OracleParameter("@localitate_id_loc", obAdresa.IdLoc));

            oracleConnection.Open();
            result = cmdc.ExecuteNonQuery().ToString();
            oracleConnection.Close();

            return result;
        }
        catch
        {
            return result = "";
        }
        finally
        {
            oracleConnection.Close();
        }
    }
}
这是我的模型:

public class AdresaModel
{
    public int IdAdresa { get; set; }
    public string Strada { get; set; }
    public string NrStrada { get; set; }
    public string Bloc { get; set; }
    public int IdLoc { get; set; }
}

@kashi_rock走上了正确的道路,但没有很好地解释这个问题。执行命令时,可以将
CommandType
设置为
StoredProcedure
,将
CommandText
设置为存储过程的名称,也可以将
CommnadType
设置为
Text
(默认设置),将
CommandText
设置为SQL语句。你在混搭。您提供的是内联SQL,但表示希望使用存储过程。基本上,摆脱这一行:

cmdc.CommandType = CommandType.StoredProcedure;

我发现很难相信没有引发异常。它应该试图告诉您没有具有您指定的名称或类似名称的存储过程。您需要启动异常处理游戏,否则您会被其他似乎不起作用但没有说明原因的事情弄糊涂。

您会遇到什么错误?如果出现异常,您将在
捕获
块中抛出异常的详细信息。不要那样做。您需要查看异常数据是什么,以便找出问题所在以及如何解决问题。如果您使用的是insert查询,则命令类型不能是存储过程,反之亦然。它不会引发任何异常。但是当我在表单中插入数据时,什么也没有发生…
catch{return result=”“;}
正在丢弃您可能得到的任何异常。如果要捕获异常并像这样抑制它,至少应该将其记录到磁盘以供将来参考。否则就无法调试任何东西。这是我的异常:Oracle.ManagedDataAccess.Client.OracleException类型的异常发生在Oracle.ManagedDataAccess.dll中,但未在用户代码中处理“实际引发异常并不奇怪。你有没有按照我的建议把那条线去掉?在那之后还引发了异常吗?顺便说一下,我并没有真正使用Oracle,但我不确定Oracle提供程序是否支持“@”作为参数前缀。我想你可能需要用“p”或“:”来代替。它起作用了。。。我用“:”代替“@”,我做了一点改变。。。谢谢:D