我在Visual Studio中使用SQL在數據庫中發生convserion錯誤。.net c#sql字符串到日期轉換錯誤
我正在使用的數據庫是一個普通的sql服務器數據庫。 它被賦予我作爲我的任務。
這是我的查詢方法是我的web
[WebMethod]
public bool search(string ddate, string dairport, string aairport, string seat)
{
int seat2 = Convert.ToInt32(seat);
DateTime date = Convert.ToDateTime(ddate);
String query1 = "SELECT * FROM Flight_Schedule S WHERE S.departure_date = '24/09/2011'";
using (SqlConnection connect = new SqlConnection(conn))
{
SqlCommand cmd = new SqlCommand(query1, connect);
connect.Open();
SqlDataReader result = cmd.ExecuteReader();
try
{
if (result.Read())
{
return true;
}
finally
{
result.Close();
connect.Close();
connect.Dispose();
}
return false;
}
}
有一個與正常人一樣的查詢沒有問題:
"SELECT * FROM Flight_Schedule S WHERE S.origin_airport_code = '" + dairport + "'";
錯誤:
System.Data.SqlClient.SqlException: Conversion failed when converting date and/or time from character string.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.HasMoreRows()
at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
at System.Data.SqlClient.SqlDataReader.Read()
at AirportService.AirportServices.search(String ddate, String dairport, String aairport, String seat) in C:\Users\XXXXX\Documents\Visual Studio 2010\Projects\WebService2\AirportService\AirportServices.asmx.cs:line 47
你的「正常查詢」(第二個例子)只是時機已經成熟虐待......這是一種致命的查詢。我可以用這種網絡訪問方法殺死你的服務器。 –
驗證你的日期格式 – Boomer
marc gravell這是一個沒有1會殺死的學校作業。值'24/09/2011'從數據庫中複製而來。 – user904406