[英]How to get a value from a stored procedure
我想知道如何獲取存儲過程的參數。 我是ASP.Net C#的新手。這是我的存儲過程。
ALTER procedure [dbo].[obtnCtUsuarios]
((@nombre nvarchar (20))
AS
SELECT
id, idEmpresa
FROM
ctUsuarios
WHERE
nombre = @nombre
ORDER BY
idNombre DESC
我在這里遇到錯誤,因為我不知道如何放置參數。
public List<ctUsuarios> select_ALL_ctUsuarios()
{
List<ctUsuarios> LstctUsuarios = new List<ctUsuarios>();
string storedProcedure = "obtnCtUsuarios";
using (DbConnection con = Conexion.dpf.CreateConnection())
{
con.ConnectionString = Conexion.constr;
using (DbCommand cmd = Conexion.dpf.CreateCommand())
{
cmd.Connection = con;
cmd.CommandText = storedProcedure;
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
using (DbDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
LstctUsuarios.Add(
new ctUsuarios((int)dr["idUsuario"],
(string)dr["id"],
(string)dr["idEmpresa"]));
}
}
}
}
return LstctUsuarios;
}
這是我的連接和ExecuteNonQuery
。
public class Conexion
{
public Conexion()
{ }
public static string constr
{
get { return ConfigurationManager.ConnectionStrings["Conn"].ConnectionString; }
}
//Cliente
public static string Provider
{
get { return ConfigurationManager.ConnectionStrings["Conn"].ProviderName; }
}
public static DbProviderFactory dpf
{
get
{
return DbProviderFactories.GetFactory(Provider);
}
}
private static int ejecutaNonQuery(string storedProcedure, List<DbParameter> parametros)
{
int Id = 0;
try
{
using (DbConnection con = Conexion.dpf.CreateConnection())
{
con.ConnectionString = Conexion.constr;
using (DbCommand cmd = Conexion.dpf.CreateCommand())
{
cmd.Connection = con;
cmd.CommandText = storedProcedure;
cmd.CommandType = CommandType.StoredProcedure;
foreach (DbParameter param in parametros)
cmd.Parameters.Add(param);
con.Open();
Id = cmd.ExecuteNonQuery();
}
}
}
catch (Exception)
{
throw;
}
finally
{
//conection.close();
}
return Id;
}
有人可以幫我獲取參數嗎? 謝謝
cmd.Parameters.AddWithValue("@nombre", value);
這就是將參數添加到數據庫命令的方式,這就是我想問的。
編輯:
using (DbConnection con = Conexion.dpf.CreateConnection())
{
con.ConnectionString = Conexion.constr;
using (DbCommand cmd = Conexion.dpf.CreateCommand())
{
cmd.Connection = con;
cmd.CommandText = StoredProcedure;
// here is good
cmd.Parameters.AddWithValue("@nombre", yourParamValue);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
cmd.Parameters.Add(literalFromSproc, SqlDbType.VarChar).Value =
將執行您想要的操作。 如果說您的存儲過程中有一個名為@Name
的參數,則可以執行cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = "evan";
還有類似的變體,例如AddWithValue
都可以使用。 在這里查看文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.