小编khi*_*kle的帖子

如何将淫秽数据写入文件?

我正在开发一个应用程序,它从大量文本文件(~2.5 GB)读取行,将每行操作为特定格式,然后将每行写入文本文件.一旦输出文本文件关闭,程序"批量插入"(SQL Server)将数据存入我的数据库.它有效,它只是很慢.

我正在使用StreamReaderStreamWriter.

由于我必须操纵文本,我几乎一直在阅读一行.但是,我认为,如果我制作了一系列线条并且每1000行左右写出一个集合,那么它至少可以加快速度.问题是(这可能纯粹是出于我的无知),我不能写一个string[]使用StreamWriter.在探索StackOverflow和互联网的其余部分后,我遇到了File.WriteAllLines,它允许我写入string[]文件,但我不认为我的计算机的内存可以处理2.5 GB的数据一次存储.此外,文件已创建,填充和关闭,因此我必须制作大量较小的文件来分解2 GB文本文件,只是将它们插入数据库.所以我宁愿远离这个选择.

我能想到的一个黑客工作是制作一个StringBuilder并使用该AppendLine方法添加每一行来制作一个巨大的字符串.然后我可以将其转换StringBuilder为字符串并将其写入文件.

但足够我的推测.我已经实现的方法有效,但我想知道是否有人可以建议更好的方法将数据块写入文件?

c# optimization performance

4
推荐指数
2
解决办法
1011
查看次数

我可以在用户输入上使用asp.net验证器来避免sql注入攻击吗?

我正在设计一个网站,用户在该网站上指定一个帐户ID(必须是8位数字),以便查找与该帐户关联的帐单日期.我使用了asp.net regex验证器来阻止用户输入字符.我还在此文本框中附加了一个必填字段验证器.

我已经阅读了其他stackoverflow问题的SQL注入攻击,但我没有遇到任何与使用验证器保护查询有关的事情.

设置这些验证器后,我有什么理由担心sql注入攻击吗?我还需要(或应该)做些什么来防止恶意用户滥用此用户输入.

这是我的SQL查询的C#代码,并使用与AccountID关联的帐单周期日期填充下拉列表:

string sqlCommandString = "SELECT StatementDate AS StateDate FROM dbTable " + 
    "WHERE AccountID = '" + AccountID + "' ORDER BY StatementDate DESC";

string ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

using (SqlConnection sqlConnection = new SqlConnection(ConnectionString))
using (SqlCommand sqlCommand = new SqlCommand(sqlCommandString, sqlConnection))
{
    sqlConnection.Open();
    DropDownList_StatementDate.DataSource = sqlCommand.ExecuteReader();
    DropDownList_StatementDate.DataBind();
}
Run Code Online (Sandbox Code Playgroud)

这是我使用的正则表达式验证器:

<asp:RegularExpressionValidator
    ID="RegExpVal_AccountID"
    runat="server"
    ErrorMessage="Must be 8 digits"
    ValidationExpression="^\d{8}$"
    ControlToValidate="TextBox_AccountID"
    CssClass="ValidatorStyle"
    Display="Dynamic">        
</asp:RegularExpressionValidator>
Run Code Online (Sandbox Code Playgroud)

谢谢.

c# sql-server asp.net

2
推荐指数
1
解决办法
600
查看次数

标签 统计

c# ×2

asp.net ×1

optimization ×1

performance ×1

sql-server ×1