Я получаю следующую ошибку при выполнении моего приложения на компьютере под управлением Windows XP с установленным .NET 2.0. На моем компьютере Windows 7 .NET 2.0 - 3.5 У меня нет никаких проблем. Целевая версия сервера SQL - 2005. Эта ошибка началась, когда я добавил дату и время в хранимую процедуру. Я много читал об использовании .NET datetime с SQL datetime, и я до сих пор не понял этого. Если кто-то может указать мне в правильном направлении, я был бы признателен.Ошибка .NET datetime с хранимой процедурой SQL
Здесь я верю, что ошибка исходит.
private static void InsertRecon(string computerName, int EncryptState, TimeSpan FindTime, Int64 EncryptSize, DateTime timeWritten)
{
SqlConnection DBC = new SqlConnection("server=server;UID=InventoryServer;Password=pass;database=Inventory;connection timeout=30");
SqlCommand CMD = new SqlCommand();
try
{
CMD.Connection = DBC;
CMD.CommandType = CommandType.StoredProcedure;
CMD.CommandText = "InsertReconData";
CMD.Parameters.Add("@CNAME", SqlDbType.NVarChar);
CMD.Parameters.Add("@ENCRYPTEXIST", SqlDbType.Int);
CMD.Parameters.Add("@RUNTIME", SqlDbType.Time);
CMD.Parameters.Add("@ENCRYPTSIZE", SqlDbType.BigInt);
CMD.Parameters.Add("@TIMEWRITTEN", SqlDbType.DateTime);
CMD.Parameters["@CNAME"].Value = computerName;
CMD.Parameters["@ENCRYPTEXIST"].Value = EncryptState;
CMD.Parameters["@RUNTIME"].Value = FindTime;
CMD.Parameters["@ENCRYPTSIZE"].Value = EncryptSize;
CMD.Parameters["@TIMEWRITTEN"].Value = timeWritten;
DBC.Open();
CMD.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException e)
{
PostMessage(e.Message);
}
finally
{
DBC.Close();
CMD.Dispose();
DBC.Dispose();
}
}
Необработанное исключение: System.ArgumentOutOfRangeException: Значение перечисления SqlDbType, 32, является недействительным. Имя Параметр: SqlDbType на System.Data.SqlClient.MetaType.GetMetaTypeFromSqlDbType (целевой SqlDbType) в System.Data.SqlClient.SqlParameter.set_SqlDbType (значение SqlDbType) в System.Data.SqlClient.SqlParameter..ctor (String ParameterName , SqlDbType DbType) в System.Data.SqlClient.SqlParameterCollection.Add (String ParameterName, SqlDbType SqlDbType) в ReconHelper.getFilesInfo.InsertRecon (String, Int32 COMPUTERNAME EncryptState, TimeSpan FindTime, Int64 EncryptSize, DateTime TimeWritten) в ReconHelper.getFilesInfo .Main (String [] args)
Можете ли вы показать нам структуру таблицы и рассказать нам, какое значение имеет значение eDateTime, которое вы используете для вставить? –
Тип данных столбца DB для @Runtime и @Encryptsize? –