将 SQL 服务器连接转换为 Oracle 数据库连接(ASP.NET Core MVC 和 C#)

Converting SQL Server connection to Oracle database connection (ASP.NET Core MVC & C#)

我需要一点帮助。我正在尝试修改我的函数以使它们在 Oracle 数据库中工作,我需要能够获得我的 GetCreate在我的 Oracle 数据库上工作的方法。

这是我的创建方法:

public void CreateRow(Person person)
{
    using SqlConnection con = new SqlConnection(connectionString);

    SqlCommand cmd = new SqlCommand("SP_InserNewRow", con);
                         {
                              cmd.CommandType = CommandType.StoredProcedure;
                         }

    cmd.Parameters.AddWithValue("@CODE", person.CODE);
    cmd.Parameters.AddWithValue("@NAME", person.NAME);
    cmd.Parameters.AddWithValue("@LASTNAME", person.LASTNAME);

    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
}

这是我的获取方法:

public IEnumerable<Person>GetPersonList
{
    var listPerson = new List<Person>;

    using (SqlConnection con = new SqlConnection(connectionString))
    {
        SqlCommand cmd = new SqlCommand("select * from myview", con);
        cmd.CommandType = CommandType.StoredProcedure;

        con.Open();

        SqlDataReader dr = cmd.ExecuteReader();

        while (dr.Read())
        {
             var person = new Person();
             person.CODE = Convert.ToInt32(dr["CODE"].ToString());
             person.NAME = dr["NAME"].ToString();
             person.LASTNAME = dr["LASTNAME"].ToString();

             listPerson.Add(person);
        }

        con.Close();
   }

   return listPerson;
}

现在,我正在尝试将上述方法连接到 Oracle 数据库。

我添加了这个:

using Oracle.DataAccess.Client 
using Oracle.DataAccess

将我的字符串连接更改为:

"DATA SOURCE=10.204.3.1:1521/PROD;" + "PERSIST SECURITY INFO=True;USER ID=username; password=password; Pooling =False;"

我开始修改Get方法:

public IEnumerable<Person>GetPersonList
{
    var listPerson = new List<Person>();

    using (OracleConnection con = new OracleConnection(connectionString2))
    {
        OracleCommand cmd = new OracleCommand("select * from myview", con);
        cmd.Connection = con;
        cmd.InitialLOBFetchSize = 1000;
        cmd.CommandType = CommandType.StoredProcedure;

        var list = new listPerson();
        list.CODE = Convert.ToInt32(dr["CODE"].ToString());
        list.NAME = dr["NAME"].ToString();
        list.LASTNAME = dr["LASTNAME"].ToString();

        listPerson.Add(list);
    }

    con.Close();
}
return listPerson;

我有点迷茫,可以帮我修改方法吗?

编辑:

readonly string connectionString = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxxx)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PROD)));User Id=xxx;Password=xxxx;"

public IEnumerable<Person>GetPersonList
        {
            var listPerson = new List<Person>();

            using (OracleConnection con = new OracleConnection(connectionString))
            {

                OracleCommand cmd = new OracleCommand("select * from myview", con);
                cmd.Connection = con;
                cmd.InitialLOBFetchSize = 1000;
                cmd.CommandType = CommandType.Text;
                con.Open();
                OracleDataReader dr = cmd.ExecuteReader();
                while (dr.Read()){
                var list = new Person();
                    list.CODE = Convert.ToInt32(dr["CODE"].ToString());
                    list.NAME = dr["NAME"].ToString();
                    list.LASTNAME = dr["LASTNAME"].ToString();

                    listPerson.Add(list);
                }
                con.Close();
            }
            return listPerson;
        }       

我的编辑工作正常。谢谢史蒂夫 :)