使用.NET和Oracle读取SQL查询的最佳方法
如何获得SQL查询计算的结果 比如说,有两个案例” 这将从存储过程返回使用.NET和Oracle读取SQL查询的最佳方法,.net,oracle,stored-procedures,.net,Oracle,Stored Procedures,如何获得SQL查询计算的结果 比如说,有两个案例” 这将从存储过程返回 在.net、C#(Windows窗体)上阅读这篇文章的最佳方式是什么?如果您认为可以获得多条记录,那么您可以使用DataReader,如果您只获得一个值,没有记录,也没有多个列,则可以使用ExecuteCalar 下面介绍如何调用存储过程并获取读取器,然后读取其第一列: using(var conn = new OracleConnection("Data Source=oracledb;User Id=UserID;Pa
在.net、C#(Windows窗体)上阅读这篇文章的最佳方式是什么?如果您认为可以获得多条记录,那么您可以使用
DataReader
,如果您只获得一个值,没有记录,也没有多个列,则可以使用ExecuteCalar
下面介绍如何调用存储过程并获取读取器,然后读取其第一列:
using(var conn = new OracleConnection("Data Source=oracledb;User Id=UserID;Password=Password;"))
{
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "storedProcedurename";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(...);
conn.Open();
OracleDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
var yourResult = dr[0].ToString();
}
}
这取决于您是在调用存储过程,还是在尝试恢复记录 对于存储过程,它可以将值分配给
out
或inout
参数,或者生成一个记录集。对于前者,您需要使用属性指定参数类型。对于后者,除了需要将command.CommandType
设置为之外,所有操作都作为普通查询进行
典型的SQL查询如下所示:
using (var cmd = connection.CreateCommand())
{
cmd.CommandText = "SELECT something FROM YourTable";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader["something"]);
}
}
}
至于数据库连接,我建议您使用
DbProviderFactory
生成它,以获得尽可能通用的代码:您尝试了什么?演示如何从C调用查询。请,这是对一个更通用的问题的通用回答。使用DataReader并读取返回的字符串怎么样?
using (var cmd = connection.CreateCommand())
{
cmd.CommandText = "SELECT something FROM YourTable";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader["something"]);
}
}
}