sqlserver-在c#中将字符串数据插入数据库

本文关键字:数据 插入 数据库 字符串 sqlserver- | 更新日期: 2023-09-27 17:59:03

我正在处理sharp nlp,我正在提取所有形容词,现在我需要将其存储在数据库中,并且我已经成功地将其添加到数据库中,但我的问题是,我想将形容词单独存储到数据库中。我该如何单独存储形容词?例如,我们有字符串,我们想将每个单词分别存储到数据库,而我们只有一个专栏我们该怎么做。请帮帮我这是我的密码。

private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                string cleaned = richTextBox1.Text.Trim();
                string st = "INSERT INTO TABLE1(adjective)VALUES('" + cleaned + "')";
                SqlConnection con = new SqlConnection("Data Source=ZAZIKHAN''SQLEXPRESS;Initial Catalog=mis;Integrated Security=True");
                con.Open();
                SqlCommand cmd = new SqlCommand(st, con);

                if (cmd.ExecuteNonQuery() == 1)
                {
                    MessageBox.Show(" succesfully added");
                }
                else
                {
                    MessageBox.Show("Sorry we couldnt add the Values Please try Again");
                }
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("" + ex);
            }
        }

现在我有了要存储的数据,它在richtextbox中。

local/JJ  daily/JJ  n/price/rate/JJ  human/JJ  possible/JJ  correct/JJ  exact/JJ  local/JJ  
local/JJ  daily/JJ  n/price/rate/JJ  human/JJ  possible/JJ  correct/JJ  exact/JJ  local/JJ  
dry/JJ  nd/JJ  
new/JJ  full/JJ  OK/JJ  final/JJ  white/JJ  OK/JJ  howajaa/JJ  smajder/JJR  agaa/JJ  nasambd/JJ  Live/JJ  

final/JJ  

great/JJ  s3/JJ  final/JJ  
resistant/JJ  Z1/JJ  white/JJ  new/JJ  black/JJ  amaa.Kintact/JJ  possible/JJ  main/JJ  mobile/JJ  rapak/JJ  mil/JJ  
important/JJ  mil/JJ  smart/JJ  

35-h/JJ  OK/JJ  full/JJ  





Want/JJ  complete/JJ  white/JJ  same/JJ  
available/JJ  perfect/JJ  
interested/JJ  

sqlserver-在c#中将字符串数据插入数据库

首先,行

string cleaned = richTextBox1.Text.Trim();
string st = "INSERT INTO TABLE1(adjective)VALUES('" + cleaned + "')";

创建一个称为SQL注入的巨大安全漏洞。

为了将形容词分别存储在一个适当的非规范化数据库中,您需要一个父表(例如,原始句子存储在该表中)和一个与父表具有1:N关系的子表(每个形容词存储一行,再加上父行的适当ID)。

由于只有一列可用,因此可以使用任何方便的格式将形容词数组存储在一列中。您可以序列化该数组(到Binary、XML、JSON等)并存储它,或者由于您知道您的输入字符集有限,您甚至可以将其存储为逗号分隔的列表。

您可以在单词前面加一些字符,以指示它们是动词、名词、形容词,然后将这些值插入数据库

例如N_JonSkeet-无

V_Solve-谓词

A_最高形容词

string cleaned = extractAdjective(richTextBox1.Text.Trim());
string st = "INSERT INTO TABLE1(word) VALUES(@Word)";
SqlConnection con = new SqlConnection("Data Source=ZAZIKHAN''SQLEXPRESS;Initial Catalog=mis;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand(st, con);
SqlParameter param = new SqlParameter("@Word", SqlDbType.NChar);
param.Value = "A_"+cleaned;
cmd.Parameters.Add(param);

我会将字符串分离成一个列表,然后迭代该列表并插入您的DB:

var vals = "local/JJ  daily/JJ  n/price/rate/JJ  human/JJ  possible/JJ...";
var results = vals.Replace(" ", "")
                  .Replace("/JJ", "|")
                  .Replace("/", "|")
                  .Split('|')
                  .Distinct();
while(var result in results)
{
   // DO insert here
}