【问题标题】:datareader returning empty with parameter?数据读取器返回空参数?
【发布时间】:2011-09-21 11:44:41
【问题描述】:

我正在使用 select where field.table =" + foo; 查询,但没有返回任何数据。不知道为什么。

public  Submission GetSubmissionsByID(string x)
{


      string viewQuery = "SELECT Submission.SubmissionId, Submission.CustId, Submission.BroId, Submission.Coverage, Submission.CurrentCoverage, Submission.PrimEx, Submission.Retention, Submission.EffectiveDate, Submission.Commission, Submission.Premium, Submission.Comments FROM Submission WHERE Submission.SubmissionId =" + x;
      string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
      using (SqlConnection conn = new SqlConnection(connectionString))
      {
          conn.Open();

          SqlCommand viewCmd = new SqlCommand(viewQuery, conn);
          SqlDataReader dr = null;
          dr = viewCmd.ExecuteReader();
          Submission tempSubmission = new Submission();

          tempSubmission.SubmissionId1 = dr.GetInt32(0);
          tempSubmission.CustomerId1 = dr.GetInt32(1);
          tempSubmission.BrokerId1 = dr.GetInt32(2);
          tempSubmission.Coverage1 = dr.GetInt32(3);
          tempSubmission.CurrentCoverage1 = dr.GetInt32(4);
          tempSubmission.PrimEx1 = dr.GetInt32(5);
          tempSubmission.Retention1 = dr.GetInt32(6);
          tempSubmission.EffectiveDate1 = dr.GetDateTime(7);
          tempSubmission.Commission1 = dr.GetInt32(8);
          tempSubmission.Premium1 = dr.GetInt32(9);
          tempSubmission.Comment1 = dr.GetString(10);

          return tempSubmission;
      }
} 

在此处调用,其中查询值 X 有效,该行上有数据。 x 设置为常量/有效值也会失败。

string x = Request.QueryString["SubmissionId"];

    SubmissionService ss = new SubmissionService();
    Submission sub = ss.getSubmissionByID(x);

【问题讨论】:

  • 拼接后的viewQuery是什么样子的?

标签: c# asp.net sql-server visual-studio oop


【解决方案1】:

您必须致电Read() 才能前进到第一条记录。

      dr = viewCmd.ExecuteReader();
      if( dr.Read())
      {
        Submission tempSubmission = new Submission();

        tempSubmission.SubmissionId1 = dr.GetInt32(0);
        tempSubmission.CustomerId1 = dr.GetInt32(1);
        tempSubmission.BrokerId1 = dr.GetInt32(2);
        tempSubmission.Coverage1 = dr.GetInt32(3);
        tempSubmission.CurrentCoverage1 = dr.GetInt32(4);
        tempSubmission.PrimEx1 = dr.GetInt32(5);
        tempSubmission.Retention1 = dr.GetInt32(6);
        tempSubmission.EffectiveDate1 = dr.GetDateTime(7);
        tempSubmission.Commission1 = dr.GetInt32(8);
        tempSubmission.Premium1 = dr.GetInt32(9);
        tempSubmission.Comment1 = dr.GetString(10);

        return tempSubmission;
      }
      return null;

【讨论】:

  • 对我来说又是一个 duh 时刻。谢谢,@Bala。
猜你喜欢
  • 1970-01-01
  • 2020-01-13
  • 2015-01-18
  • 1970-01-01
  • 2011-11-28
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多