将值赋给属性时出现空错误(Null error when assigning value to property)
尝试创建一个自定义对象,允许我在记录中拾取错误。
public class gridIntegerField { private int value; private bool isValid; private string message; public int Value { get { return this.value; } set { this.value = value; } } public bool IsValid { get { return isValid; } set { isValid = value; } } public string Message { get { return message; } set { message = value; } } } public class gridRecord { private gridIntegerField printRun; public gridIntegerField PrintRun { get { return printRun; } set { printRun = value; } } }
当创建对象并尝试设置值时,我得到以下错误...
XML-Console.exe中发生了未处理的“System.NullReferenceException”类型异常
创建对象的代码......
gridRecord spr = new gridRecord(); spr.PrintRun.Value = 200; spr.PrintRun.IsValid = true; spr.PrintRun.Message = "No Errors"; Console.WriteLine(spr.PrintRun.Value.ToString()); Console.WriteLine(spr.PrintRun.IsValid.ToString()); Console.WriteLine(spr.PrintRun.Message.ToString()); Console.ReadKey();
错误发生在这行代码中
spr.PrintRun.Value = 200;
Trying to create a custom object that will allow me to pickup errors in the records.
public class gridIntegerField { private int value; private bool isValid; private string message; public int Value { get { return this.value; } set { this.value = value; } } public bool IsValid { get { return isValid; } set { isValid = value; } } public string Message { get { return message; } set { message = value; } } } public class gridRecord { private gridIntegerField printRun; public gridIntegerField PrintRun { get { return printRun; } set { printRun = value; } } }
when creating object and trying to set the values i get the folowing error...
An unhandled exception of type 'System.NullReferenceException' occurred in XML- Console.exe
Code for creating object...
gridRecord spr = new gridRecord(); spr.PrintRun.Value = 200; spr.PrintRun.IsValid = true; spr.PrintRun.Message = "No Errors"; Console.WriteLine(spr.PrintRun.Value.ToString()); Console.WriteLine(spr.PrintRun.IsValid.ToString()); Console.WriteLine(spr.PrintRun.Message.ToString()); Console.ReadKey();
the error happens at this line of code
spr.PrintRun.Value = 200;
原文:https://stackoverflow.com/questions/33119791
最满意答案
假设您在Linux上,如果您无法连接到数据库以阻止它,您可以通过以下方式找到进程ID来杀死
pmon
或smon
进程以停止数据库:ps -ef | grep pmon
那你有2个选择:
- 以
NOMOUNT
启动DB并增加DB_RECOVERY_FILE_DEST_SIZE
参数SQL> ALTER DATABASE SET DB_RECOVERY_FILE_DEST_SIZE=300G
或- 在
MOUNT
模式下启动DB并使用RMAN连接到DB并删除一些(或所有)归档日志RMAN> delete archivelog all
,在此OPEN DBSQL> alter database open;
Assume you are on Linux, if you can't connect to DB to stop it you could just KILL the
pmon
orsmon
process to stop DB by finding the process id with:ps -ef | grep pmon
Then you have 2 options:
- Start DB in
NOMOUNT
and increase theDB_RECOVERY_FILE_DEST_SIZE
parameterSQL> ALTER DATABASE SET DB_RECOVERY_FILE_DEST_SIZE=300G
or- Startup DB in
MOUNT
mode and connect to DB with RMAN and delete some (or all) archivelogsRMAN> delete archivelog all
, after this OPEN DBSQL> alter database open;
相关问答
更多-
在舞台上寻找一个自由区域(Finding a free area in the stage)[2023-01-24]
让S是舞台的区域。 设A是我们想绘制的最小矩形的面积。 设N = S / A 一种可能的确定性方法: 当您在空的舞台上画一个矩形时,这会将舞台划分为最多4个可以适合您的下一个矩形的区域。 绘制下一个矩形时,将一个或两个区域分割成最多4个可以适合矩形的子区域(每个)。您将不会创建超过N个区域,其中S是舞台区域,并且A是最小矩形的面积。 保留一个区域清单(未排序很好),每个区域由其四个角点表示,每个区域用其面积标记,并使用油藏大小为1的加权油藏采样来选择一个与油藏大小成正比的区域最多一个区域通过列表。 然后在该 ... -
删除大量数据后测量数据库可用空间(Measure database free space after a DELETE of a considerable amount of data)[2023-05-30]
当表没有聚簇索引时,DELETE-Statement不会释放页面。 因此空间不能被其他对象重用。 您可以使用选项取消分配页面: 在DELETE语句中使用TABLOCK-hint 如果可能的话,在表上创建一个聚簇索引,你可以在没有TABLOCK-hint的情况下删除它 在线查看MSDN,主题锁定行为https://msdn.microsoft.com/en-US/library/ms189835(v=sql.120).aspx When a table has no clustered index, a DE ... -
vacuum不会在物理上“释放”空间。 它只标记不再使用的空间可重复使用。 因此,后续的UPDATE或INSERT语句可以使用该空格而不是附加到表中。 从手册中引用 标准形式的VACUUM删除表和索引中的死行版本,并标记可用于将来重用的空间 。 但是, 它不会将空间返回给操作系统 ,除非在表格末尾的一个或多个页面完全空闲并且可以轻松获得独占表锁定的特殊情况下 (强调我的) 如果重新插入250个已删除的行,您将看到该表不会再次增长,因为新插入的行只使用vacuum标记为空的空间。 如果您确实希望将表的大小物理 ...
-
“释放空间”是什么意思? 当你删除数据时,块中的空间被释放。 该空间现在可用于您从中删除数据的表中的后续插入(或更新)。 这通常是足够的,因为表格通常会在未来再次增长。 如果要减小表段的大小并使空间可用于同一表空间中的其他段,则可以缩小表 ALTER TABLE table_name ENABLE ROW MOVEMENT; ALTER TABLE table_name SHRINK SPACE CASCADE; 此时通常不需要重建索引。 What do you mean by "free up the ...
-
来回切换恢复模式是一个坏主意。 将数据库置于不良状态很容易,并且很容易使数据库备份无效。 第一个选择是获得更多的存储空间,以便随着日志的增长,您不会耗尽空间。 有时候这样做会更简单,因此您的下一个选择是在ETL运行时以设定的时间间隔运行事务日志备份。 这将允许事务被提交,并让您保持日志文件不被填满。 这将增加磁盘I / O,因此性能可能会受到影响。 第三个选项(我更喜欢并且在这些情况下经常使用)是在恢复设置为SIMPLE的临时数据库中完成所有ETL处理。 ETL的最后一步是简单地使用清理过的数据更新生产数据 ...
-
听起来很奇怪。 数据有或没有提交。 我怀疑你的一个同事是偷偷摸摸的。 Sounds very odd to me. Data either is or is not commited. I suspect skulduggery by one of your collegues.
-
首先对数据库进行任何结构更改之前,请执行FULL Database Backup。 如果如您所说,大多数未分配的空间位于SQL Server数据文件(.mdf)中,那么您应该使用DBCC SHRINKFILE而不是DBCC SHRINKDATABASE。 例如: USE UserDB; GO DBCC SHRINKFILE (LogicalDataFileName, target_sizeInMB ); GO 另外,请考虑使用TRUNCATEONLY选项仅从数据文件末尾释放可用空间。 这是资源密集度较低的 ...
-
6TB的使用可能是因为MemSQL,或者可能是因为Spark或其他一些进程。 MemSQL ops报告总磁盘使用情况,而不是MemSQL使用的磁盘(工具提示略有误导)。 1)Rowstore表(没有CLUSTERD COLUMNSTORE索引的表)在每次写入时将日志写入磁盘。 当日志变得很大时,日志会合并到快照中,默认情况下,我们会保留最后两个快照文件。 因此,两个快照中较旧的一个可能包含您删除的数据。 您可以使用SNAPSHOT
触发新快照,这将使GC清除旧(可能很大)的SNAPSHOT ... -
Mediawiki数据库恢复(Mediawiki database recovery)[2023-08-08]
看起来你的SQL备份来自较旧版本的MediaWiki,并且缺少page.page_content_model列(可能还有其他)。 要修复它,您需要运行您的MediaWiki版本附带的数据库架构更新脚本 ( maintenance/update.php )。 您可以从命令行(推荐)或通过Web升级 (如果您没有命令行访问权限)执行此操作。 有关更多详细信息,请参阅上面的链接,但基本上,对于具有命令行访问权限的典型MediaWiki安装,您只需要ssh到您的Web主机, cd到MediaWiki根目录,然后运行 ... -
假设您在Linux上,如果您无法连接到数据库以阻止它,您可以通过以下方式找到进程ID来杀死pmon或smon进程以停止数据库: ps -ef | grep pmon 那你有2个选择: 以NOMOUNT启动DB并增加DB_RECOVERY_FILE_DEST_SIZE参数SQL> ALTER DATABASE SET DB_RECOVERY_FILE_DEST_SIZE=300G或 在MOUNT模式下启动DB并使用RMAN连接到DB并删除一些(或所有)归档日志RMAN> delete archivelog ...