如何在 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();
        }

如何在数据库表中搜索单词或句子? 我的方法正确吗? 如果您有解决方案,请提供帮助

如何在 SQL 数据库表中搜索字符串

你的问题不是很清楚。如果你想在 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命令。