我有一个错误,它是:
“过程或函数'Consulta_RFC_Empresa'需要参数'@RFC',这是未提供的。”
这是我在C#上使用的代码:
public static Proveedor getDatosEmpresa(string erfc)
{
SqlDataReader rdr = null;
Proveedor empr = new Proveedor();
try
{
conn.Open();
SqlCommand command = new SqlCommand("Consulta_RFC_Empresa", conn);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@RFC", @erfc);
rdr = command.ExecuteReader();
while (rdr.Read())
{
if (rdr.HasRows)
{
empr.seteID("" + rdr["ID"]);
empr.seteRfc("" + rdr["RFC"]);
empr.seteTipo("" + rdr["Tipo"]);
empr.seteRazon("" + rdr["Razon_Social"]);
}
}
}
finally
{
if (conn != null)
{
conn.Close();
}
if (rdr != null)
{
rdr.Close();
}
}
return empr;
}
和存储过程代码是:
ALTER PROCEDURE [dbo].[Consulta_RFC_Empresa]
(
@RFC VARCHAR(50)
)
AS
SET NOCOUNT ON
SELECT TOP(1)
RTRIM(LTRIM(ID)) AS ID,
RTRIM(LTRIM(REPLACE(RFC, ' ', ''))) AS RFC,
RTRIM(LTRIM(Tipo)) AS Tipo,
RTRIM(LTRIM(Razon_Social)) AS Razon_Social
FROM [Roga].[dbo].[RFC_Empresa_Buzon_Fiscal]
WHERE RTRIM(LTRIM(REPLACE(RFC, ' ', ''))) LIKE @RFC
有人可以帮助我吗?
答案 0 :(得分:0)
好像你没有添加它所期望的参数(你在@eRFC
中有一个额外的'e'。
你有:
command.Parameters.AddWithValue("@eRFC", erfc);
尝试将其更改为:
command.Parameters.AddWithValue("@RFC", erfc);
答案 1 :(得分:0)
更改您的代码 command.Parameters.AddWithValue(“@ RFC”,@ erfc);
要 command.Parameters.AddWithValue(“@ RFC”,erfc);
因为“erfc”是您传递给参数的值。
答案 2 :(得分:0)
试试这个,
SqlCommand command = new SqlCommand("Consulta_RFC_Empresa @RFC", conn);