在安裝了.NET 2.0的Windows XP計算機上執行我的應用程序時,出現以下錯誤。在我的電腦上Windows 7 .NET 2.0 - 3.5我沒有任何問題。目標SQL服務器版本是2005.當我將日期時間添加到存儲過程時,發生此錯誤。我一直在閱讀關於使用.NET日期時間和SQL日期時間的很多內容,但我仍然沒有想到這一點。如果有人能指出我正確的方向,我將不勝感激。SQL存儲過程的.NET datetime問題
這裏是我相信錯誤來自哪裏。
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(字符串參數名稱,SqlDbType DBTYPE) 在System.Data.SqlClient.SqlParameterCollection.Add(字符串參數名稱,SqlDbType sqlDbType) 在ReconHelper.getFilesInfo.InsertRecon(字符串COMPUTERNAME,的Int32 EncryptState,時間跨度FindTime,Int64類型EncryptSize,日期時間timeWritten) 在ReconHelper.getFilesInfo .Main(String [] args)
您可以向我們顯示錶結構,並告訴我們您嘗試訪問的eDateTime的值插? – 2010-03-09 07:02:40
@Runtime和@Encryptsize的數據庫列數據類型? – 2010-03-09 07:04:00