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
首先,行
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
}