如何在 SQL 数据库表中搜索字符串
本文关键字:搜索 字符串 数据库 SQL | 更新日期: 2023-09-27 18:36:14
这是我的程序
public partial class message : System.Web.UI.Page
{
string constring = ConfigurationManager.ConnectionStrings["AnonymiousSocialNetworkConnectionString"].ToString();
protected void Page_Load(object sender, EventArgs e)
{
txtuseremil.Text = Session["emid"].ToString();
}
protected void btnsend_Click(object sender, ImageClickEventArgs e)
{
SqlConnection con = new SqlConnection(constring);
string value = txtmsg.Text;
if (value.Contains(SqlCommand cmd = new SqlCommand("select keyword from messageanalysis where keyword=@value"))// <--MY PROBLEM
{
con.Open();
lblStatus.Text = "Normal"; <-- I WANT TO DERIVE THIS VALUE FROM TABLE ACCORDING TO THE VALUE I GET FROM keyword
Frdsclass.Text = "Just Friend"; <--- I WANT TO DERIVE THIS VALUE FROM TABLE ACCORDING TO THE VALUE I GET FROM keyword
SqlCommand cmd = new SqlCommand("insert into messagetable(sendid,message,userid,emotional,friendsclassify) values (@snd,@msg,@usr,@emo,@frdcl)", con);
cmd.Parameters.AddWithValue("@snd", txtsndmail.Text);
cmd.Parameters.AddWithValue("@msg", txtmsg.Text);
cmd.Parameters.AddWithValue("@usr", txtuseremil.Text);
cmd.Parameters.AddWithValue("@emo", lblStatus.Text);
cmd.Parameters.AddWithValue("@frdcl", Frdsclass.Text);
cmd.ExecuteNonQuery();
con.Close();
}
如何在数据库表中搜索单词或句子? 我的方法正确吗? 如果您有解决方案,请提供帮助
你的问题不是很清楚。如果你想在 varchar 字段中搜索一个子字符串,你可以用一个 like 来做
从您的表格中选择 *,其中您的 VARCHARFIELD 喜欢 '%您的搜索字符串%'
如果你想在不同的领域看,你可以链接...或你的其他Fild,如'%yousearchstring%'
如果要搜索以搜索字符串开头的记录,条件为
..比如'你的搜索字符串%'
public string GetValue (string searchValue)
{
using(SqlConnection connection = new SqlConnection(connString));
using(SqlCommand cmd = new SqlCommand(
"select keyword from messageanalysis where value=@value")
{
cmd.AddParameter("@value",searchValue);
var result = cmd.ExecuteScalar();
return (result == null)? null : result.ToString();
}
}
....
var keyword = GetValue(value);
if (keyword != null && value.Contains(keyword)){
....
你可以做这样的事情。 我已将您的选择语句分离到不同的函数中。 这将查找您传入的值并返回关键字。 如果未找到,该函数将返回 null。 然后,我将其设置为检查并查看关键字是否为 null(因为找不到 null)以及它是否找到执行条件代码的值。
试试这个...
注意:ExecuteScalar() 将返回结果集的第一条记录。
public partial class message : System.Web.UI.Page
{
string constring = ConfigurationManager.ConnectionStrings["AnonymiousSocialNetworkConnectionString"].ToString();
protected void Page_Load(object sender, EventArgs e)
{
txtuseremil.Text = Session["emid"].ToString();
}
protected void btnsend_Click(object sender, ImageClickEventArgs e)
{
SqlConnection con = new SqlConnection(constring);
string value = txtmsg.Text;
SqlCommand cmd = new SqlCommand("select keyword from messageanalysis where keyword = @value")
cmd.Parameters.AddWithValue("@value", Keywordtextbox.text);
cmd.Connection=con;
con.Open();
if (Keywordtextbox.text.Contains(cmd.ExecuteScalar()))
{
lblStatus.Text = "Normal";
Frdsclass.Text = "Just Friend";
SqlCommand cmd = new SqlCommand("insert into messagetable(sendid,message,userid,emotional,friendsclassify) values (@snd,@msg,@usr,@emo,@frdcl)", con);
cmd.Parameters.AddWithValue("@snd", txtsndmail.Text);
cmd.Parameters.AddWithValue("@msg", txtmsg.Text);
cmd.Parameters.AddWithValue("@usr", txtuseremil.Text);
cmd.Parameters.AddWithValue("@emo", lblStatus.Text);
cmd.Parameters.AddWithValue("@frdcl", Frdsclass.Text);
cmd.ExecuteNonQuery();
con.Close();
}
如果你的文本字段可以包含多个单词,你必须用适当数量的字符串分隔单词,然后
选择具有类似Saerch的记录,如我之前的答案所示
从您的表中选择 *,其中您的瓦查菲尔德像 '%string1%' 或你的瓦查菲尔德像 '%string2%' 或 ...
由于文本字段可以有不同数量的单词,因此您必须使用字符串生成器构建SQL命令。