Windows窗体c#-将RichTextBox中的每一行插入SQL Server的单独列

Windows窗体c#-将RichTextBox中的每一行插入SQL Server的单独列,c#,sql-server,windows-forms-designer,C#,Sql Server,Windows Forms Designer,我是.NET Framework的初学者,如果我的代码有错误,请指导我 我正在Visual Studio 2014的Windows窗体中使用C#创建一个.NET应用程序,并使用SQL Server 2014作为数据库 我试图实现一项任务,即客户在RichTextBox中输入文本,其中段落也可以有多个段落。每个句子以句号(.)结尾。我试图实现的是,输入的文本应该保存到数据库列中,每一行都以句号结束,并且应该保存在不同的列中 以下是我到目前为止在Visual Studio中所做的工作: privat

我是.NET Framework的初学者,如果我的代码有错误,请指导我

我正在Visual Studio 2014的Windows窗体中使用C#创建一个.NET应用程序,并使用SQL Server 2014作为数据库

我试图实现一项任务,即客户在
RichTextBox
中输入文本,其中段落也可以有多个段落。每个句子以句号(.)结尾。我试图实现的是,输入的文本应该保存到数据库列中,每一行都以句号结束,并且应该保存在不同的列中

以下是我到目前为止在Visual Studio中所做的工作:

private void button1_Click(object sender, EventArgs e)
    {
        string[] values = richTextBox1.Text.Split('$');
        obj.url = "abc.com";
        foreach (string item in values)
        {
            obj.content_result= item;

        }
        dbobj.table_test.Add(obj);
        dbobj.SaveChanges();
        MessageBox.Show("Content Added Successfully");
    }

我的数据库表如下:

表格名称:表格测试

ID (int - Primary Key - Auto Increment) | Content varchar(MAX) | URL varchar(MAX)

这将数据保存到名为
table\u test
的数据库中,其中列名为;内容和url,上面的代码应将
RichTextBox
中的数据插入到每个句子应保存在单独一行的内容中

例如

如果用户在
RichTextBox
中输入以下文本:

他是个好孩子。他工作做得很好。他宁愿早点工作以避免不便

上述字符串应保存在数据库中为:

ID | Content                                        | URL
--------------------------------------------------------------------
 1 | He is a good boy.                              | abc.com
 2 | He does his work very well                     | abc.com
 3 | He prefer to work early to avoid inconvenience | abc.com
但是,上述数据在数据库中保存为:

ID | Content     | URL
--------------------------------------------------------------------------------------------------------------
 1 | He is a good boy. He does his work very well. He prefer to work early to avoid inconvenience. | abc.com
请帮我解决这个问题,使每个句子都保存在表格的不同列中


谢谢:)

你应该用点分隔文本

string[] values = richTextBox1.Text.Split('.');
但是如果你的文本中有网站地址,你应该在每个句子的末尾放一个类似于“$的符号,将长文本拆分成字符串数组”

公共类表
public class Table
{
    public int Id;
    public string Content;
    public string Url
}

string[] lines = richTextBox1.Text.Split(Environment.NewLine.ToCharArray());
List<Table> items = new List<Table>();
int id = 1;
for (int i=0;i < lines.Length; i++)
{
      string[] tmp = lines[i].Split('|');
      foreach (string x in tmp[1].Split('.'))
          if(!x.Trim()=="")
              items.Add(new Table{ Id = id++ , Content = x + ".", Url = tmp[2] }); 
}
{ 公共int Id; 公共字符串内容; 公共字符串Url } string[]lines=richTextBox1.Text.Split(Environment.NewLine.ToCharArray()); 列表项=新列表(); int-id=1; 对于(int i=0;i

现在,数组中的所有项都可以使用EF,也可以通过循环其项将它们添加到数据库中

上述字符串应保存在数据库中为:。。。不,它不应该。。。即使您要解决拆分问题,您的代码显然也会以
1结尾|他宁愿早点工作以避免不便| abc.com
回答得很好Ashkan,但作为op提纲,文本应以句号/句号分隔。@AshkanMobayenKhiabani感谢您的快速帮助,但是,上面的代码给出了一些奇怪的错误,比如列表表未声明,并且无法在第一行中从字符串转换为字符。正如我所说的,我是一个完全的新手,所以不明白为什么会出现这些错误。此外,还希望了解如何使用实体框架向DB插入值。:)@Ahmad表实际上已声明,但不在代码部分(代码的开头)中,并且在已更正的拆分中存在错误。请再看一遍答案。