我需要使用sql查询绑定一个asp转发器,其中包含一个参数但我使用的是公共静态方法,因此我不知道如何将变量传递给此方法:
aspx webfile背后的代码:
protected void Page_Load(object sender, EventArgs e)
{
this.DataAdmin();
}
public void DataAdmin()
{
/****Resultado is the repeater name */
Datatable dataAdmin = DescargarDocumentos.SolicitarDatosDocumento() ;
Resultados.DataSource = dataAdmin;
Resultados.DataBind();
}
课程背后的代码
public class DescargaDocumentos
{
public static DataTable SolicitarDatosDocumentos()
{
/* */
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Conexion"].ConnectionString);
SqlDataReader reader;
conn.Open();
SqlCommand vistadocumentos = new SqlCommand("ultimasolicitud", conn);
vistadocumentos.CommandType = CommandType.StoredProcedure;
/* i need to add the parameter here */
vistadocumentos.Parameters.AddWithValue("@numero",numero);/*error is here because i cant get pass this parameter to a static method*/
reader = vistadocumentos.ExecuteReader();
DataTable test = null;
if (reader.HasRows)
{
test = new DataTable("test");
test.Load(reader);
}
reader.Close();
conn.Close();
return test;
}
}
错误在变量号上,因为我不能“将变量numero”传递给静态方法,是否可以这样做?
btw这是存储过程(应该根据订单号返回文件名)
alter procedure documentlist (
@numero int
)
as
begin
select
tipo_de_documento.tipo_documento,detalle_documentos.nombre_documento
from tipo_de_documento inner join has_tipo on
tipo_de_documento.numero=has_tipo.numero_tipo inner join
detalle_documentos
on has_tipo.id_detalle= detalle_documentos.id_detalle inner join
Documentos
on detalle_documentos.num_documento= documentos.num_documento where
documentos.num_solicitud=@numero
end
答案 0 :(得分:2)
您应该指定应搜索“哪个文档”,也可以从文本框中搜索。
我建议进行以下更改:
int numeroDocumento;
if (!int.TryParse(txtNumeroDocumento.Text, out numeroDocumento))
{
//Something here to sinalize that the "numeroDocumento" is not a number.
return;
}
Datatable dataAdmin = DescargarDocumentos.SolicitarDatosDocumento(numeroDocumento);
和
public static DataTable SolicitarDatosDocumentos(int numero)
//You need to make that method accept the "number" arg
另外,我建议您在此处发布时将您的变量名称从葡萄牙语/西班牙语翻译成英语。