ich einen C# -Code habe einige Daten aus einer SQL-Tabelle zu erhalten, diese Daten durch mssql getdate()
das Problem hier gefüllt sind, ist, dass meine Daten in der folgenden Struktur dargestellt werden:Datetime wird nicht wie erwartet
/Date(1480343496517)/
Und was ich erwarte, ist dies:
2016-11-28 08:13:23.820 //This is what I get executing my query in MSSQL
Das ist mein voller Code:
C# Klasse
public MyDate(DateTime date)
{
Date = date;
}
public DateTime Date { get; set; }
WebMethod
[WebMethod]
public string ShowDate()
{
DataTable dt = new DataTable();
dt = conn.CheckTable("date");
MyDate fch;
List<MyDate> list = new List<MyDate>();
for (int i = 0; i < dt.Rows.Count; i++)
{
fch = new Fecha();
fch.Date = Convert.ToDateTime(dt.Rows[i]["Date"]);
list.Add(fch);
fch = null;
}
JavaScriptSerializer js = new JavaScriptSerializer();
string lines = js.Serialize(list);
return lines;
}
TABLE
public DataTable CheckTable(string table)
{
dt = new DataTable();
ds = new DataSet();
string sql = "";
switch (table)
{
case "date":
sql = "SELECT Date FROM dbo.Table_1";
break;
}
try
{
Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds);
dt = ds.Tables[0];
}
catch (Exception ex)
{
}
finally
{
Close();
}
return dt;
}
Und meine JS-Funktion:
$.ajax({
type: 'POST', //POST | GET
url: "WebService.asmx/ShowDate", //Direccion del ws
dataType: 'json',
contentType: 'application/json',
timeout: 600000,
error: function (xhr) {
$('#dates').html('<option>Error</option>');
},
success: function (data) {
var datas = JSON.parse(data.d);
for (var i = 0; i < datos.length; i++) {
var myDate= datas[i].Date;
options += '<option value ="' + myDate+ '">';
options += myDate;
options += '</option>';
}
$('#dates').html(options);
}
});
Was mache ich falsch und was kann ich dagegen tun lösen?
Ich vermute, der JavaScriptSerializer konvertiert die DateTime in Millisekunden, so dass es einfach als JSON an den Client gesendet werden kann – adeneo