我是.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");
}
我的数据库表如下:
表名:Table_test
ID (int - Primary Key - Auto Increment) | Content varchar(MAX) | URL varchar(MAX)
这会将数据保存到名为table_test
的数据库中,并使用名为;内容和网址,上面的代码应该从RichTextBox
插入数据到每个句子应该保存在一个单独的行中的内容。
E.g
如果用户在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
请帮我修复这个问题,这样每个句子都保存在表的不同列中。
谢谢 :)
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] });
}
现在,您拥有数组中的所有项目可能会使用EF或只是循环其项目以将它们添加到您的数据库。
你应该用点分割文字
string[] values = richTextBox1.Text.Split('.');
但如果你的文本中有网站地址,你应该在每个句子的末尾加上一个像$或类似的符号来将长文本分成字符串数组