如何使用C#将词汇表解析到数据库中?

如何使用C#将词汇表解析到数据库中?,c#,database,parsing,text,C#,Database,Parsing,Text,这应该是一个简单的例子,但我是C#的初学者 提供以下格式的词汇表列表: aptitude ability, skill, gift, talent aqueous watery arguably maybe, perhaps, possibly, could be 我如何解析它,并以以下格式插入到数据库表中: TABLE: Term_Glossary ================================================ Term_Name | Te

这应该是一个简单的例子,但我是C#的初学者

提供以下格式的词汇表列表:

aptitude  
ability, skill, gift, talent

aqueous  
watery

arguably  
maybe, perhaps, possibly, could be
我如何解析它,并以以下格式插入到数据库表中:

TABLE: Term_Glossary
================================================
Term_Name  | Term_Definition                   |
================================================
aptitude   | ability, skill, gift, talent      |
------------------------------------------------
aqueous    | watery                            |
------------------------------------------------
arguably   | maybe, perhaps, possibly, could be|
================================================
任何帮助都将不胜感激-谢谢

更新
我意识到数据库结构很简单/效率很低-但实际上,我的问题是解析第一个示例中使用C#的文本类型的代码。谢谢。

在我看来,您可能会读取第一行,将其保存到变量中,读取第二行,将其保存到第二个变量中,然后插入到表中,其中Term_Name=第一个变量,Term_Definition=第二个变量

所以你的逻辑是:

StreamReader SR;
string Term_Name;
string Term_Definition

SR = File.OpenText(filename);
Term_Name = SR.ReadLine();
while(Term_Name != null)
{
    Term_Definition = SR.ReadLine();
    // make your database call here to insert with these two variables.  I don't know what DB you are using.
    Term_Name = SR.ReadLine();
}
SR.Close();

在我看来,您将读取第一行,将其保存到变量中,读取第二行,将其保存到第二个变量中,然后插入到表中,其中Term_Name=第一个变量,Term_Definition=第二个变量

所以你的逻辑是:

StreamReader SR;
string Term_Name;
string Term_Definition

SR = File.OpenText(filename);
Term_Name = SR.ReadLine();
while(Term_Name != null)
{
    Term_Definition = SR.ReadLine();
    // make your database call here to insert with these two variables.  I don't know what DB you are using.
    Term_Name = SR.ReadLine();
}
SR.Close();

一开始它可能看起来更复杂,但从长远来看,你会发现从两个表的角度考虑问题要容易得多:

===========================================
Term_ID     | Term_Name                   |
===========================================
1           | aptitude                    |
2           | aqueous                     |
3           | arguably                    |
===========================================

===============================================
Definition_ID  | Term_ID   | Definition_Name  |
===============================================
1              | 1         | ability          |
2              | 1         | skill            |
3              | 1         | gift             |
4              | 1         | talent           |
5              | 2         | watery           |
6              | 3         | maybe            |
7              | etc.etc.etc

也许你甚至可以考虑,如果你能通过一个带ID的单词表和一个关联表来进一步规范这一点。

一开始它可能看起来更复杂,但从长远来看,你会发现从两个表的角度考虑更容易:

===========================================
Term_ID     | Term_Name                   |
===========================================
1           | aptitude                    |
2           | aqueous                     |
3           | arguably                    |
===========================================

===============================================
Definition_ID  | Term_ID   | Definition_Name  |
===============================================
1              | 1         | ability          |
2              | 1         | skill            |
3              | 1         | gift             |
4              | 1         | talent           |
5              | 2         | watery           |
6              | 3         | maybe            |
7              | etc.etc.etc

甚至可以考虑,如果您可以通过一个带ID的单词表和一个关联表来进一步规范这一点。

这是SQL Server数据库吗?全文同义词目录可以表示这是一种有点类似的方式。我可能是SQL Server Express,但我修改了描述以澄清数据库示例离题。这是SQL Server数据库吗?全文同义词目录可以表示这是一种有点类似的方式。我可能是SQL Server Express,但我已经修改了描述,以澄清数据库示例离题。-1 OP询问了关于他应该如何解析文本的帮助,而不是关于他应该如何设计数据库的帮助。DB模式可能超出了他的控制范围,与问题完全无关。无论如何,我会在数据库设计中记住这一点-尽管如此,谢谢。@AZ:请善待。。。在他最近编辑这个问题之前,OP没有承认他/她对模式简单性的理解,也没有强调对文件i/o和解析的关注。因此,pdr的建议是为了给那些看起来相当缺乏经验的人一个有用的提示(当然,在C#中,一般来说,可能)。通常,此类提示作为对问题(或答案,如果适用)的注释是更好的选择,但鉴于此提示的图形性质和大小,使用答案是足够公平的。-1 OP询问了关于他应该如何解析文本的帮助,而不是关于他应该如何设计DB的帮助。DB模式可能超出了他的控制范围,与问题完全无关。无论如何,我会在数据库设计中记住这一点-尽管如此,谢谢。@AZ:请善待。。。在他最近编辑这个问题之前,OP没有承认他/她对模式简单性的理解,也没有强调对文件i/o和解析的关注。因此,pdr的建议是为了给那些看起来相当缺乏经验的人一个有用的提示(当然,在C#中,一般来说,可能)。通常,这样的提示作为对问题(或答案,如果适用)的评论是更好的选择,但鉴于此提示的图形性质和大小,使用答案就足够了。宾果。这是一种有效的方法。谢谢,宾果。这是一种有效的方法。谢谢