将 SQL 服务器连接转换为 Oracle 数据库连接(ASP.NET Core MVC 和 C#)
Converting SQL Server connection to Oracle database connection (ASP.NET Core MVC & C#)
我需要一点帮助。我正在尝试修改我的函数以使它们在 Oracle 数据库中工作,我需要能够获得我的 Get 和 Create在我的 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;
}
我的编辑工作正常。谢谢史蒂夫 :)
我需要一点帮助。我正在尝试修改我的函数以使它们在 Oracle 数据库中工作,我需要能够获得我的 Get 和 Create在我的 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;
}
我的编辑工作正常。谢谢史蒂夫 :)