首页 > 解决方案 > 使用 reader 从表中查询数据

问题描述

目前我尝试检索表寄存器的数据,但它没有检索任何东西,知道吗?我不知道我的脚本是错误的还是我遗漏了什么。不要捕获任何东西。我也尝试使用此查询,但我不知道 Where is the correct form?SqlCommand comm = new SqlCommand("select clase, opacion from Clase_Documento where codigoafip = '"+ codafip +"'", conn);

Field codafip = (Field)doc.Fields["ZIMCodigoAFIP"];
Field clasedoc = (Field)doc.Fields["ZIMBlart"];
Field operacion = (Field)doc.Fields["ZIMOperacion"];

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=localhost\\DOKUSTAR;Database=RdaDB10;User ID=bcc;Password=******;Trusted_Connection=Yes";
conn.Open();

SqlDataReader dr;
SqlCommand comm = new SqlCommand("select * from Clase_Documento", conn);
dr = comm.ExecuteReader();
while(dr.Read())
{
    if (codafip.Value == dr.GetString(4))
    {   
        string clasedoc2 = dr.GetString(1);
        string operacion2 = dr.GetString(5);
        clasedoc.Value = clasedoc2; //here put the data of the table in its respective field
        operacion.Value = operacion2; //here put the data of the table in its respective field
    }
}

只是为了澄清,mi表就是这个,我要检索的字段是“clase”和“operacion”,具体取决于参数codigoafip 在此处输入图像描述

标签: c#

解决方案


假设您的字段名称是 claseDocField、operacionField 和 codafipField(以及所有字符串):

using (SqlConnection conn = new SqlConnection(@"server=.\DOKUSTAR;Database=RdaDB10;Trusted_Connection=Yes"))
using (SqlCommand comm = new SqlCommand(@"select top(1) clasedocField, operacionField
from Clase_Documento
where codafipField = @codafip", conn))
{
 comm.Parameters.Add("@codafip", SqlDbType.VarChar).Value = codafip.Value;
 conn.Open();

  SqlDataReader dr = comm.ExecuteReader();
  if(dr.Read())
  {
        clasedoc.Value = (string)dr["claseDocField"];
        operacion.Value = (string)dr["operacionField"];
  }
}

编辑:

    using (SqlConnection conn = new SqlConnection(@"server=.\DOKUSTAR;Database=RdaDB10;Trusted_Connection=Yes"))
    using (SqlCommand comm = new SqlCommand(@"select top(1) clase, operacion
    from Clase_Documento
    where codigoafip = @codafip", conn))
    {
     comm.Parameters.Add("@codafip", SqlDbType.VarChar).Value = codafip
;
     conn.Open();

      SqlDataReader dr = comm.ExecuteReader();
      if(dr.Read())
      {
            clasedoc.Value = (string)dr["clase"];
            operacion.Value = (string)dr["operacion"];
      }
      else 
      {
           clasedoc.Value = "Not found";
      }
    }

推荐阅读