【问题标题】:Access select Query访问选择查询
【发布时间】:2014-07-17 12:05:07
【问题描述】:

我正在尝试将数据从 Access 数据库导入数据表,我想在网格视图中显示。

我使用了两个文本框,一个带有起始值,第二个带有结束值。当我在文本框中输入值时,它会显示填充数据的网格视图。这行得通,但我的问题是 gridview 向我显示来自整个访问表的数据,而不仅仅是我想要的分层值和结束值之间的数据。

protected DataTable DataLoad()
{
    string queryString = "SELECT  SNR,.... ,......,......,.......,......  FROM Mytable Where SNR Between '" + tb_SNRFrom.Text + "'And '" + tb_SNRTil.Text + "'";
    {
        try
        {
          OleDbCommand command1 = new OleDbCommand(queryString, connection);
          OleDbDataAdapter da = new OleDbDataAdapter(command1);
          DataSet dataset = new DataSet();
          da.Fill(dataset);
          table = dataset.Tables[0];
        }
        catch (OleDbException exp)
        {
            Response.Write("Database Error:" + exp.Message.ToString());
        }
        connection.Close();

        return table;
    }
}

【问题讨论】:

  • 您应该始终使用parameterized queries。这种字符串连接对SQL Injection 攻击开放。
  • @Soner 关于使用参数是正确的。他们甚至可以解决您的日期范围问题。
  • 生病尝试thanx为你的答案!

标签: c# asp.net ms-access gridview


【解决方案1】:

既然知道上限和下限,为什么不使用SELECT SNR,.... ,......,......,.......,...... FROM Mytable Where SNR >= @SmallValue And SNR <= @LargeValue;..

【讨论】:

  • 程序是一个搜索掩码。我无法修复下限和上限 - 永远只限一次。
  • largevalue 和 smallvalue 不是固定值。它们是要从两个文本框传递的参数。我的意思是从下限和上限说的是,您有一个用于上限的文本框和一个用于下限的文本框
  • 信噪比的数据类型是什么?也可以尝试在Access中执行绝对值查询,检查返回的数据是否被过滤。
  • 那列里面有哪些数据呢?提供一些例子。
  • 例如,我在文本框中输入了值:197、222,我得到了 snr=197....... …………2154! 2154是表的结束SRN
猜你喜欢
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多