【发布时间】:2014-02-05 08:39:53
【问题描述】:
我正在从我的 Web 应用程序执行以下查询并访问 2007 查询向导。我得到了两个不同的结果。
SELECT R.Rept_Name, D.Dist_Name,S.State_Name FROM (tblReporter AS R LEFT JOIN tblDist AS D ON R.Dist_Id=D.Dist_Id) LEFT JOIN tblState AS S ON S.State_Id=R.State_Id WHERE R.Rept_Name LIKE '*Ra*' ORDER BY R.Rept_Name;
Web 应用程序的结果为 0 行,查询向导为 2 行。如果我删除 where 条件,则两个结果都相同。请帮助我查询有什么问题。如果需要任何其他信息,请告诉我。
Web 应用程序代码 ...
public DataTable getRept(string rept, string mobno)
{
DataTable dt = new DataTable();
using (OleDbConnection conn = new OleDbConnection(getConnection()))
{
using (OleDbCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT R.Rept_Name, D.Dist_Name,S.State_Name FROM (tblReporter AS R LEFT JOIN tblDist AS D ON R.Dist_Id=D.Dist_Id) LEFT JOIN tblState AS S ON S.State_Id=R.State_Id WHERE R.Rept_Name LIKE '*" + rept + "*' ORDER BY R.Rept_Name;";
conn.Open();
using (OleDbDataReader sdr = cmd.ExecuteReader())
{
if (sdr.HasRows)
dt.Load(sdr);
}
}
}
return dt;
}
【问题讨论】:
-
请使用内联文本退出。您对 SQL 注入持开放态度。请为每个查询使用参数 - 即使您只是作为示例提供此参数。
标签: c# asp.net ms-access ms-access-2007