Grazie killex per il supporto, alla fine ho risolto cosi

FileStream file = new FileStream("C:\\wmpub\\WMRoot\\testfileplay2.wsx", FileMode.Create, FileAccess.ReadWrite);
StreamWriter sw2 = new StreamWriter(file);
string queryString = "SELECT Filepath,Durata FROM risorse,programmazione WHERE Programmazione.PalinsestoID="+Session["ID"]+"AND Programmazione.ProgrammaID=Risorse.ProgrammaID";
string queryString = "SELECT Filepath,Durata FROM risorse,programmazione WHERE Programmazione.PalinsestoID="+Session["ID"]+"AND Programmazione.ProgrammaID=Risorse.ProgrammaID";
string queryString1 = "SELECT Dataora_inizio FROM Palinsesti WHERE Palinsesti.PalinsestoID=" + Session["ID"];
SqlCommand command = new SqlCommand(queryString, connection);
SqlCommand command1 = new SqlCommand(queryString1, connection);
connection.Open();
SqlDataReader reader1 = command1.ExecuteReader();
reader1.Read();
DateTime inizio = DateTime.Parse(string.Format("{0}", reader1[0]));
reader1.Close();
SqlDataReader reader = command.ExecuteReader();

sw2.Write("<?wsx version=\"1.0\"?>\r\n");
sw2.Write("<smil>\r\n");
while (reader.Read())
{
sw2.Write("<media src=\" ");
sw2.Write(String.Format("{0}", reader[0]));
sw2.Write("\" noSkip=\"true\"");
string date = (string.Format("{0}", reader[1]));
string datehours = date.Substring(0, 2);
string dateminutes = date.Substring(3, 2);
string dateseconds = date.Substring(6, 2);
double hours = Convert.ToDouble(datehours);
double minutes = Convert.ToDouble(dateminutes);
double seconds = Convert.ToDouble(dateseconds);
inizio = inizio.AddHours(hours);
inizio = inizio.AddMinutes(minutes);
inizio = inizio.AddSeconds(seconds);
sw2.Write("begin=\"wallclock(");
sw2.Write("{0}", inizio.ToLongTimeString());
sw2.Write(")\"/>\r\n");
}
reader.Close();
connection.Close();
sw2.Write("</smil>\r\n");
sw2.Flush();
sw2.Close();