Windows窗体c#-将RichTextBox中的每一行插入SQL Server的单独列
我是.NET Framework的初学者,如果我的代码有错误,请指导我 我正在Visual Studio 2014的Windows窗体中使用C#创建一个.NET应用程序,并使用SQL Server 2014作为数据库 我试图实现一项任务,即客户在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
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表实际上已声明,但不在代码部分(代码的开头)中,并且在已更正的拆分中存在错误。请再看一遍答案。