0

my objects WDst,WDet,SATst,SATet are DATETIME class objects which contains value of time from the text boxes.

all the start time and end time parameters in my SP are of dATA type Time(7) how can i use DateTime Object

i use following code to insert a schedule in my data base:

public void AddSchedule()
{
 connect = DAL.Con;
    SqlCommand com = new SqlCommand();
    com.Connection = connect;
    com.CommandType = CommandType.StoredProcedure;
    com.CommandText = "AddSchedule";
    SqlParameter parameters = new SqlParameter();
    com.Parameters.Add(new SqlParameter("SchedName",SqlDbType.VarChar)).Value=Schedulename;
    com.Parameters.Add(new SqlParameter("startTime",SqlDbType.Time)).Value=WDst;
    com.Parameters.Add(new SqlParameter("endTime",SqlDbType.Time)).Value=WDet;
    com.Parameters.Add(new SqlParameter("SatStartTime", SqlDbType.Time)).Value=SATst;
    com.Parameters.Add(new SqlParameter("SatEndTime", SqlDbType.Time)).Value=SATet;
    connect.Open();
    com.ExecuteNonQuery();
    connect.Close();
}

Error occurs at Com.ExecuteNonQuery ... Nothing is wrong with my stored procedure.

How can i save Only Time from my Date Time Objects that haS saved time values as follows:

protected void SaveSched_Click(object sender, EventArgs e)
{
    Schedule obj = new Schedule();
    obj.Schedulename = SchedName.Text;
    obj.WDst = Convert.ToDateTime(StartTime.Text);
    obj.WDet = Convert.ToDateTime(EndTime.Text);
    obj.SATst = Convert.ToDateTime(SatSt.Text);
    obj.SATet = Convert.ToDateTime(SatEt.Text);
    obj.AddSchedule();
}
Sana.91
  • 1,999
  • 4
  • 33
  • 52

2 Answers2

2

My best bet is you have to use the ToString() method with a custom format for your DateTime objects. And pass it as a string instead of a DateTime object to the database.

See this URL for custom formatting for a DateTime object: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

For example:

DateTime now = DateTime.Now;
now.ToString("yyyy-MM-dd HH:mm:ss"); //Outputs 2012-10-13 20:40:35
now.ToString("HH:mm:ss"); //Will then output 20:40:35
Mike de Klerk
  • 11,906
  • 8
  • 54
  • 76
1

Try

com.Parameters.Add(
           new SqlParameter("startTime",SqlDbType.Time)).Value = 
                               WDet.ToString("HH:mm:ss");
techBeginner
  • 3,792
  • 11
  • 43
  • 59
  • what if i use: com.Parameters.Add( new SqlParameter("startTime",SqlDbType.Time)).Value = WDet.ToString("HH:mm"); – Sana.91 Oct 13 '12 at 18:58