下面是一个访问数据库并提取与数据库中类似的 controlNumber 的函数。正如您在靠近顶部的注释掉部分看到的那样,我想用通配符指示符 ( ) 替换 controlNumber 的最后 3 位数字,这样它只会在数据库中搜索类似于该行下方的 controlnumbers ("1289 * *")
在数据库中,我可以使用查询“SELECT * FROM Orders WHERE Control_Number LIKE '1298***';” 我得到了正确的信息。但是当我使用这种方法在代码中尝试它时,我返回了 0 行。
有什么帮助吗?
注意:我要访问 Access 数据库,而不是 mysql
public string ABSCheckControlNumberForAccuracy(string _controlNumber,string _zip,string _state, string _city)
{
//_controlNumber = _controlNumber.Remove(_controlNumber.Length - 3) + "***";
_controlNumber = "1298***";
OleDbConnection conn = new OleDbConnection(strAccessConnTaxCert);
string query = "SELECT * FROM Orders WHERE Control_Number LIKE @_controlNumber;";
OleDbCommand cmd = new OleDbCommand(query, conn);
cmd.CommandText = query;
OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn);
adapter.SelectCommand.Parameters.Add("@_controlNumber", OleDbType.VarChar).Value = "%" + _controlNumber + "%";
System.Data.DataTable dt = new System.Data.DataTable();
try
{
conn.Open();
adapter.Fill(dt);
}
catch (System.Exception ex)
{
throw;
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return dt.Rows[0][0].ToString();
}