除非需要,否则设置一个窗口只打开一次

时间:2013-10-07 13:43:32

标签: c# sql database winforms

我正在设计一个密码加密应用程序,并希望使用用户选择的密码来密码保护首次启动软件时创建的数据库。

那么如何将应用程序设置为在其生命周期中仅运行一次特定部分?如何为SQL Compact版本数据库密码分配文本框值?

P.S我将使用SHA256进行随机盐和散列加密,以防有人想告诉我更好的方法吗?

请帮忙

1 个答案:

答案 0 :(得分:1)

第一部分,如何执行一次。在数据库中将某个字段标记为标记,或者使用标记创建一个新表,并在Form_Load上检查其值,如果找到该标记,则打开其他一些默认表单,如仪表板等。

对于第二部分,请从此处获取完整的理解并解决您的问题:http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlceengine.compact(VS.80).aspx

SqlCeEngine engine = new SqlCeEngine("Data Source = db.sdf");
engine.Compact(null);
engine.Compact("Data Source=; Password =pass;");

通过旗帜,我指的是你第一次填充的任何领域。 例如,在我的网络应用程序中,我使用超级管理员记录作为标志。我查询超级管理员的表,以查找是否有任何记录。如果有记录。我不允许打开用于创建超级管理页面的页面。 如果您的应用中没有此类数据。创建一个包含一列的表,并在设置密码一次后,在该表中插入值。当请求表单时,检查此表是否有任何记录。(或者在tinyint类型的列中插入值0,并在设置密码时将其设置为1)