Не видя больше кода он может быть, что у вас есть только либо из заполняемых переменных fname
, либо lname
. Предполагая, что это так, вы можете использовать этот код.
// this assumes that you have only have 1 input for both the first name and lastname
// and are storing it in a variable named searchForName
using (var connection = new SqlConnection("YOUR_CONFIGURATION_CONNECTION_STRING"))
{
using (var command = new SqlCommand("SELECT opd_id AS [OPD No], opd_date AS DATE, opd_dpt AS DEPARTMENT, opd_pfname + ' ' + opd_plname AS [Patient NAME], opd_age AS AGE, opd_gender AS GENDER, opd_mob AS [MOBILE NO], opd_fthrname AS [FATHER NAME], opd_hsbndname AS [HUSBAND NAME] FROM tbl_OPD WHERE (opd_pfname like @p0 OR opd_plname like @p0) ORDER BY DATE DESC", connection))
{
command.Parameters.Add(new SqlParameter("@p0", string.Format("%{0}%", searchForName)));
// rest of your code here E.G., sComm.ExecuteNonQuery();
}
}
Если вы знаете, что обе переменные заселены попробовать Этот блок кода
using (var connection = new SqlConnection("YOUR_CONFIGURATION_CONNECTION_STRING"))
{
using (var command = new SqlCommand("SELECT opd_id AS [OPD No], opd_date AS DATE, opd_dpt AS DEPARTMENT, opd_pfname + ' ' + opd_plname AS [Patient NAME], opd_age AS AGE, opd_gender AS GENDER, opd_mob AS [MOBILE NO], opd_fthrname AS [FATHER NAME], opd_hsbndname AS [HUSBAND NAME] FROM tbl_OPD WHERE (opd_pfname like @p0 OR opd_plname like @p1) ORDER BY DATE DESC", connection))
{
command.Parameters.Add(new SqlParameter("@p0", string.Format("%{0}%", searchForFirstName)));
command.Parameters.Add(new SqlParameter("@p1", string.Format("%{0}%", searchForLastName)));
// rest of your code here E.G., sComm.ExecuteNonQuery();
}
}
PS. Как говорили другие, код, показанный здесь, несколько небезопасен, и вы должны сделать все, чтобы избежать атак Sql Injection.
На самом деле у какого opd_pfname? –
Кто-нибудь за игру SQL-инъекции? http://xkcd.com/327/ – Dan
opd_pfname, opd_plname - это имя столбца – Bhavnish