아래는 데이터베이스로 이동하여 데이터베이스의 것과 비슷한 controlNumber를 가져 오는 함수입니다. 위에서 주석 처리 된 섹션에서 볼 수 있듯이 controlNumber의 마지막 3 자리를 와일드 카드 인디케이터 ()로 바꾸려면 해당 라인 아래의 컨트롤 번호와 비슷한 컨트롤 번호 만 데이터베이스에서 검색합니다 ("1289 ** ")OleDB DataAdapter를 사용한 쿼리
데이터베이스 내에서"SELECT * FROM Orders Where Control_Number LIKE '1298 ***'; "쿼리를 사용할 수 있습니다. 나는 올바른 정보를 얻었습니다. 하지만이 메서드를 사용하여 코드에서 시도 할 때 0 행이 반환됩니다.
어떤 도움이 필요합니까?
참고 : 내가 대신 *의 와일드 카드 문자로하지 않는 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();
}