我有一个类,你在一个文件夹中传递,然后它关闭并处理指定文件夹中的大量数据.
例如:
MyClass myClass = new MyClass(@"C:\temp");
Run Code Online (Sandbox Code Playgroud)
现在它开始了,读取说几千个文件并用数据填充该类.
我应该从构造函数中移出这些数据并将其作为单独的方法,如下所示吗?
MyClass myClass = new MyClass();
myClass.LoadFromDirectory(@"C:\temp");
Run Code Online (Sandbox Code Playgroud) 环境:Visual Studio 2008 - C#
我有一个for在字符串数组上运行1000次以上.
当其中一个字符串与某个术语匹配时,我想让我的应用程序中断,所以我可以在我的代码中完成此操作.
现在我知道我可以添加一段代码来查找它,并在它命中时提供一个断点,但是在调试器中没有办法做到这一点吗?
所以我已经阅读了几本关于SQL的书籍,我已经使用了SQL并创建了数据库,但实际上并没有什么高级,几个表,一对几个连接,等等.
所以现在我正在开展一个非常大的项目.数据库将有多个表,我们每天将处理40'000到80'000行数据.
现在我发现自己缺少一些基本的SQL概念,例如:
我有一个包含文件和文件详细信息的数据集.这些文件列在一个表中,文件详细信息列在另一个表中.我们还有一个构建表和第四个表,它们将构建表,文件表和文件详细信息表连接在一起.
问题是,"如何处理文件并将正确的文件详细信息与文件关联并与构建关联?
甚至我的大学也没有报道这一点,现在我觉得我的表现非常深刻.
让我们举一个例子.让我们拿文件表.在我的应用程序中,我有40'000个文件,我需要将尚未存在的文件添加到文件表中.我是否必须搜索每个单独的条目并添加它是否不存在,如果不存在则跳过?
所以我真正的问题是,在哪里阅读一般概念的好地方?
我不确定我是否在这里滥用Enums.也许这不是最好的设计方法.
我有一个枚举,它声明了执行批处理文件的方法的可能参数.
public enum BatchFile
{
batch1,
batch2
}
Run Code Online (Sandbox Code Playgroud)
然后我有我的方法:
public void ExecuteBatch(BatchFile batchFile)
{
string batchFileName;
...
switch (batchFile)
{
case BatchFile.batch1:
batchFileName = "Batch1.bat";
break;
case BatchFile.batch2:
batchFileName = "Batch2.bat";
break;
default:
break;
}
...
ExecuteBatchFile(batchFileName);
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道这是否是合理的设计.
我想的另一个选择是在构造函数中创建一个Dictionary <>,如下所示:
Dictionary<BatchFile, String> batchFileName = new Dictionary<BatchFile, string>();
batchFileName.Add(BatchFile.batch1, "batch1.bat");
batchFileName.Add(BatchFile.batch2, "batch2.bat");
Run Code Online (Sandbox Code Playgroud)
然后我会去,而不是使用switch语句:
public void ExecuteBatch(BatchFile batchFile)
{
ExecuteBatchFile(batchFileName[batchFile]);
}
Run Code Online (Sandbox Code Playgroud)
我猜测后者是更好的方法.
我正在寻找一种很好的方法来维护谁可以将数据添加到C#app和SQL Server 2005中的数据库的权限.
我需要解释一下这个问题.那么让我们举个例子:
我有两个用户Bob和Jim,都已添加到SQL权限,使他们具有对数据库的写入权限.现在,所有访问都基于域用户帐户.所有其他用户只有读取权限.
现在我有几个表,例如:
因此UserPermissions包含Users和BookPublishers列表.例如:Bob有权为其添加图书MS Press并Jim有权为其添加图书O'Reilly.
现在我需要验证这些信息并限制它们可以添加的内容.
所以说Jim从命令行使用我的应用程序,他写了类似的东西:
Addbook.exe "C# 3.0 in a Nutshell" "O'Reilly"
该工具应该继续并将书籍添加到书籍表中.
现在说Bob尝试相同的命令,该工具应该出错,因为他没有权限添加书籍O'Reilly.
现在我需要知道如何做几件事.
books由特定发布者添加的写入权限现在我并不是100%担心用户注入恶意数据,虽然停止它会很好,但它是一个内部工具,我想我可以信任用户......(可能)
无论哪种方式,我都不知道从哪里开始,我的SQL技能非常缺乏.
Akk,最后一件事,我不想使用存储过程添加数据.
好的,我已经尝试过,但我只是不明白.
我有两个类logger和class1.
我有一个名为logger.Write(string)和方法的方法class1.Execute().
现在在我的应用程序中,我希望logger.Write(class1.ToString())在class1.Execute()调用时运行.
我认为你需要添加代表和事件,但我无法理解这一点,已经抓了几个小时.
有一件事是,记录器和类在不同的命名空间中,如果可能的话,我不想更新其中任何一个的类代码.
c# ×6
delegates ×2
events ×2
sql ×2
breakpoints ×1
constructor ×1
debugging ×1
dictionary ×1
enums ×1
methods ×1