Ваш SQL здесь тоже кажется неправильным.
SqlCommand cmdVRM = new SqlCommand("SELECT Ac, Vrm, Make, Model, MamengineSize, date FROM ReturnValue WHERE convert(varchar,[Date],101) between @StartDate and @EndDate and [AC]=@Acct", connVRM);
cmdVRM.Parameters.AddWithValue("@acct", acc);
cmdVRM.Parameters.AddWithValue("@StartDate", start);
cmdVRM.Parameters.AddWithValue("@EndDate", end);
OR
string SQL = "SELECT Ac, Vrm, Make, Model, MamengineSize, date FROM ReturnValue WHERE convert(datetime,[Date],101) between '"+ start +"' and '"+ end +"' and [AC]=" + acc+ "; ";
SqlCommand cmdVRM = new SqlCommand(SQL, connVRM);
Теперь вы можете использовать его так, как вам нравится.
// As DataTable is ref
public void GetVRMs(string vRMs, string start, string end, string acc, DataTable dtVM)
{
if(dtVM == null) throw new Exception("Message");
......
}
OR
public DataTable GetVRMs(string vRMs, string start, string end, string acc)
{
DataTable dtVM=new DataTable();
.......
Return dtVM;
}