我编写了一个程序来节省员工的出勤率。数据库引擎是MS Access。当我使用Data-Adapter从C#程序执行查询时,它不会返回值,但是当我在Access中执行相同的查询时,它会给出结果。我在查询中使用了一个表连接
OdbcConnection conn = new OdbcConnection(Variables.ConnectionString);
conn.ConnectionTimeout = 50;
if (conn.State != ConnectionState.Open) conn.Open();
string query = "SELECT l.matchine_number, e.actual_emp_number, e.user_name, e.location_name, l.date_time FROM tbl_log l " +
"RIGHT OUTER JOIN tbl_enroled_users AS e ON e.enroled_emp_number = l.enroled_number " +
"WHERE " +
"l.matchine_number LIKE '*" + txtMatchineNumber.Text + "*' AND " +
"e.actual_emp_number LIKE '*" + txtEmpNumber.Text + "*' AND " +
"e.user_name LIKE '*" + txtName.Text + "*' AND " +
"e.location_name LIKE '*" + txtLocation.Text + "*' AND " +
"l.date_time >= #" + dtFrom.Value.ToString("M/d/yyyy") + " 12:00:00 AM# AND " +
"l.date_time <= #" + dtTo.Value.ToString("M/d/yyyy") + " 11:59:59 PM# " +
"ORDER BY l.matchine_number, e.actual_emp_number, e.user_name, e.location_name, l.date_time";
OdbcDataAdapter adptr = new OdbcDataAdapter(query, conn);
DataTable dt = new DataTable();
adptr.Fill(dt);
if (conn.State != ConnectionState.Closed) conn.Close();
请帮助
答案 0 :(得分:1)
首先尝试使用像
这样的简单查询SELECT l.date_time FROM tbl_log l;
查看您的连接是否正确,如果这样做有效,那么您的查询就会出现问题。
答案 1 :(得分:0)
没有任何错误消息或生成的查询字符串,它只是猜测。但我的想法是你正在使用的通配符没有被正确解释。尝试将*更改为%并查看它是否有效。