Сравнить выбранную дату и дату базы данных - PullRequest
0 голосов
/ 04 апреля 2019

Моя логика:

", если выбранная дата совпадает с датой базы данных из таблицы Holiday, вернуть сообщение как" ОК "

Я уже отформатировал дату в коде, показанном ниже. Когда я тестирую дату в жестко заданной базе данных, код работает нормально.

Как получить дату базы данных из моей Holiday таблицы?

PS: Holiday таблица содержит разные даты, поэтому система должна выполнить цикл и искать каждую строку в таблице Holiday.

Код:

[System.Web.Services.WebMethod]
public static string GetDateFromDB(DateTime compareDate)
{      
    string selectedDate = compareDate.ToString("yyyy/MM/dd");   

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LoginDBConnectionString1"].ConnectionString);
    SqlCommand com = new SqlCommand("SELECT * from Holiday", conn);
    SqlDataAdapter sqlDa = new SqlDataAdapter(com);
    DataTable dt = new DataTable();
    sqlDa.Fill(dt);

    //hardcoded is ok 
    string dbDateString = "2019-02-20";
    DateTime date1 = DateTime.ParseExact(dbDateString.Split(' ')[0], "yyyy/MM/dd", null);           
    string dateDB = date1.ToString("yyyy/MM/dd");

    if (dateDB == selectedDate)
    {     
        return "OK";
    }
    else
    {
        return "NG";
    }          
}

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Вы сказали, что у вас есть несколько строк, поэтому вы можете просто возвращать «OK» или «NG» после цикла всей строки (или прерывать при ошибке):

[System.Web.Services.WebMethod]
public static string GetDateFromDB(DateTime compareDate)
{      
    string selectedDate = compareDate.ToString("yyyy/MM/dd");   

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LoginDBConnectionString1"].ConnectionString);
    SqlCommand com = new SqlCommand("SELECT * from Holiday", conn);
    SqlDataAdapter sqlDa = new SqlDataAdapter(com);
    DataTable dt = new DataTable();
    sqlDa.Fill(dt);

    if (dt != null && dt.Rows.Count > 0)
    {
        string formatDate = "yyyy/MM/dd";
        foreach (DataRow dr in dt.Rows)
        {
            string dateString = dr["yourColumnName"].ToString();
            if (string.IsNullOrEmpty(dateString))
            {
                continue; // Or set error or something
            }

            dateString = DateTime.ParseExact(dateString.Split(' ')[0], formatDate, null).ToString(formatDate);
            if (dateString.Equals(compareDate))
            {
                // Do something
            }
            else
            {
                // Set error message or something
            }
        }

        // Check after loop and return "OK" or "NG"
    }     
}
0 голосов
/ 04 апреля 2019
string selectedDate = compareDate.ToString("yyyy/MM/dd");   

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LoginDBConnectionString1"].ConnectionString);
    SqlCommand com = new SqlCommand("SELECT * from Holiday where Date='" + selectedDate + "'", conn);
    SqlDataAdapter sqlDa = new SqlDataAdapter(com);
    DataTable dt = new DataTable();
    sqlDa.Fill(dt);

if (dt == null || dt.Rows.Count() == 0)
    return "NG";
else
    return "OK";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...