Click here to Skip to main content
15,920,603 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i am facing issue i have radiobutton with different time slot and i want to disable radio button list item if system current time is more than radiobutton list item.

I am getting error input string is not in correct format..

What I have tried:

<pre>  string id = Request.QueryString["id"];
        txtdate.Text = Calendar1.SelectedDate.ToShortDateString();
        Calendar1.Visible = false;
       
      //  DateTime txtMyDate = DateTime.Parse(txtdate.Text);
        SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        string Query = "select slot from appoint where selectdate = @date and doc_id='"+id+"'";
        SqlCommand cmd = new SqlCommand(Query, cnn);
        cmd.Parameters.AddWithValue("@date", txtdate.Text);
        DataTable dtAdmin = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dtAdmin);
        if (dtAdmin.Rows.Count > 0)
        {
            string[] slots = dtAdmin.Rows.OfType<DataRow>().Select(k => k["slot"].ToString()).ToArray();
            string time = DateTime.Now.ToString("HH:mm tt");

            foreach (ListItem item in RadioButtonList1.Items)
                if (slots.Contains(item.Text) && Convert.ToInt32(item.Text) < Convert.ToInt32(time))
                {
               
                        item.Enabled = false;
                    
                }
                else
                {
                    item.Enabled = true;
                    
                }

        }
Posted
Updated 14-Nov-17 19:29pm
v2
Comments
ADI@345 15-Nov-17 1:00am    
foreach (ListItem item in RadioButtonList1.Items)
if (slots.Contains(item.Text) && Convert.ToInt32(item.Text) < Convert.ToInt32(time)) i am getting error in this line only ..

1 solution

try
foreach (ListItem item in RadioButtonList1.Items)
            { 
                DateTime dt =  DateTime.ParseExact(item.Text, "HH:mm tt", CultureInfo.CurrentCulture);
                item.Enabled = DateTime.Now > dt; 
            }

Note : Formatting the sql Query string is vulnerable to SQL Injection[^] attacks
always use Parameterized queries to prevent SQL Injection Attacks in SQL Server[^]
 
Share this answer
 
Comments
ADI@345 15-Nov-17 1:41am    
item.Enabled = DateTime.Now.ToString("HH:mm tt") > dt;

i need only hour and minute but datetime.now format is different .i am using above code but getting error.
Karthik_Mahalingam 15-Nov-17 1:45am    
DateTime.ParseExact(item.Text, "HH:mm tt", CultureInfo.CurrentCulture); --> it gives you Today's Date and Time from the ListItem
hope you got this logic?
ADI@345 15-Nov-17 1:45am    
DateTime dt = DateTime.ParseExact(item.Text, "HH:mm tt", CultureInfo.CurrentCulture);

GETTING ERROR IN THIS LINE..
String was not recognized as a valid DateTime.
Karthik_Mahalingam 15-Nov-17 1:46am    
what is the value you are getting in item.Text
ADI@345 15-Nov-17 1:49am    
In dt = 01-01-0001 00:00:00 value i am getting and item.text="9:00 AM"

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900