【发布时间】:2015-09-13 00:56:11
【问题描述】:
我有这段代码用于将数据插入数据库。我创建了一个 <string, double, string[]> 的元组列表,并将元素添加到嵌套 while 循环内的列表中。这是代码....
System.IO.StreamReader file = new System.IO.StreamReader(@"C:\Users\Malik\Desktop\research_fields.txt");
Program p = new Program();
var dd = new List<Tuple<string, double, string>>();
//string document = "The trie data structure has many properties which make it especially attractive for representing large files of data. These properties include fast retrieval time, quick unsuccessful search determination, and finding the longest match to a given identifier. The main drawback is the space requirement. In this paper the concept of trie compaction is formalized. An exact algorithm for optimal trie compaction and three algorithms for approximate trie compaction are given, and an analysis of the three algorithms is done. The analysis indicate that for actual tries, reductions of around 70 percent in the space required by the uncompacted trie can be expected. The quality of the compaction is shown to be insensitive to the number of nodes, while a more relevant parameter is the alphabet size of the key.";
//string[] document = get_Abstract();
string line;
try
{
SqlConnection con = new SqlConnection("Data Source=KHIZER;Initial Catalog=subset_aminer;Integrated Security=True");
con.Open();
SqlCommand query = con.CreateCommand();
query.CommandText = "select p_abstract from sub_aminer_paper where pid between 1 and 500 and DATALENGTH(p_abstract) != 0";
SqlDataReader reader = query.ExecuteReader();
string summary = null;
while (reader.Read())
{
summary = reader["p_abstract"].ToString();
while ((line = file.ReadLine()) != null)
{
dd.Add(Tuple.Create(line, p.calculate_CS(line, summary), summary));
}
var top_value = dd.OrderByDescending(x => x.Item2).FirstOrDefault();
if (top_value != null)
{
// look up record using top_value.Item3, and then store top_value.Item1
var abstrct = top_value.Item3.ToString();
var r_field = top_value.Item1.ToString();
write_To_Database(abstrct, r_field);
}
}
reader.Close();
}
catch (Exception e)
{
Console.WriteLine("Exception: " + e.Message);
}
finally
{
Console.WriteLine("Executing finally block.");
}
我已经在 Visual Studio 2013 中使用 c# 对其进行了调试,我看到了内部 while 循环内的语句,即 dd.Add(Tuple.Create(line, p.calculate_CS(line, summary), summary)); 只执行一次,而它应该执行 22 次,因为 reader.Read() 的长度为 22 个文档。
我已经通过在代码中仅采用单个string document 显示为//comment 来检查它,它工作正常,但不能从数据库中读取文档。
不明白为什么会这样。任何建议都将受到高度赞赏。
【问题讨论】:
-
Beeecaaause...
file.ReadLine()返回 null? -
你没有看到任何异常?
标签: c# arrays string while-loop tuples