SQL Like 条件不会显示我的搜索数据 C# 和 Ms Access
Posted
技术标签:
【中文标题】SQL Like 条件不会显示我的搜索数据 C# 和 Ms Access【英文标题】:SQL Like Conditions won't display my search data C# and Ms Access 【发布时间】:2013-04-17 14:55:38 【问题描述】:我尝试通过 MS Access (SELECT mname, mcellno WHERE mcellno LIKE '0922*') 进行查询,结果显示我想要的数据。 虽然这个
private Int32 getMemberNo()
con.ConnectionString = db.konek();
String sql = "SELECT COUNT(*) AS x FROM members";
Int32 count = 0;
try
con.Open();
OleDbCommand cmd = new OleDbCommand(sql, con);
OleDbDataReader rdr = cmd.ExecuteReader();
if (rdr.Read())
count = Convert.ToInt32(rdr["x"].ToString());
catch (Exception ex)
Console.WriteLine("Error: " + ex);
finally
con.Close();
return count;
public String[,] displayMobilePrefix() //THIS FUNCTION
con.ConnectionString = db.konek();
String sql = "SELECT mname, mcellno FROM members WHERE mcellno LIKE '" + @mcellno + "*'";
int count = this.getMemberNo();
String[,] ars = new String[2, count];
try
con.Open();
OleDbCommand cmd = new OleDbCommand(sql, con);
cmd.Parameters.Add("@mcellno", OleDbType.VarChar, 30).Value = this.mcellno;
OleDbDataReader rdr = cmd.ExecuteReader();
int counter = 0;
while (rdr.Read())
ars[0, counter] = rdr["mname"].ToString();
ars[1, counter] = rdr["mcellno"].ToString();
counter++;
finally
con.Close();
return ars; //never returns any data
它不会返回任何数据。但是我尝试在我的字符串查询上添加一个参数,但它什么也没返回。
【问题讨论】:
mcellno
的数据类型是什么?
如果从数据库运行 sql 查询会发生什么?那它会得到什么吗? (你应该为@mcellno 输入一个合理的值。)
【参考方案1】:
对于 OleDb,您的 Access 查询必须使用 %
而不是 *
作为通配符。
String sql = "SELECT mname, mcellno FROM members WHERE mcellno LIKE '" + @mcellno + "%'";
【讨论】:
以上是关于SQL Like 条件不会显示我的搜索数据 C# 和 Ms Access的主要内容,如果未能解决你的问题,请参考以下文章