Ich habe versucht, in der Datenbank zwischen zwei Terminen zu suchen, aber es bekommt Fehler:Wie Sie die Version von SQL Server im Einsatz beheben nicht Datentyp unterstützen ‚datetime2‘
The version of SQL Server in use does not support datatype 'datetime2'
Dies ist mein Code
if (idbox.Text != "")
{
conn.Open();
SqlDataAdapter dataadabter = new SqlDataAdapter("select name, mil_no,Hodor_date,rotba,enseraf_date,user_hodor,user_enseraf,hodor_time,enseraf_time " +
"from Hodor_Data where CONVERT(DATETIME,Hodor_date,101)" + "between @p1 AND @p2" + " and mil_no='" + idbox.Text + "'", conn);
SqlParameter fromdate = new SqlParameter("@p1", SqlDbType.DateTime2);
fromdate.Value = dateTimePicker1.Value;
SqlParameter todate = new SqlParameter("@p2", SqlDbType.DateTime2);
todate.Value = dateTimePicker2.Value;
dataadabter.SelectCommand.Parameters.Add(fromdate);
dataadabter.SelectCommand.Parameters.Add(todate);
DataTable dt = new DataTable();
dataadabter.Fill(dt);
dataGridView1.DataSource = dt;
conn.Close();
hodor_date
ist nvarchar(50)
'SqlDbType.DateTime2' sollte eindeutig zu etwas anderem dann geändert werden. Haben Sie nach Möglichkeiten geforscht? Auch warum ist 'hodor_date' ein' nvarchar (50) '? Warum ist 'idbox.Text' nicht parametrisiert? –
Es hilft immer, wenn Sie tatsächlich ** die Wörter ** in der Fehlermeldung lesen. In diesem Fall wird das Problem sehr deutlich erklärt, und die Wörter bedeuten eindeutig, dass Sie zu einer Version von DateTime wechseln müssen, die in Ihrer Version von SQL Server unterstützt wird. Die Dokumentation für Ihre spezielle Version wird Ihnen sagen, welche Datentypen Ihnen zur Verfügung stehen. –
ich verstehe nicht, was ich tun soll? – Amr