Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类SQL语句_C#_Sql - Fatal编程技术网

C# 类SQL语句

C# 类SQL语句,c#,sql,C#,Sql,在这里,我尝试使用like语句从db中选择一个数据,但它使用我的数据的第一位进行搜索。但我需要编写代码,比如搜索,而不是数据的前3位。有人能帮我吗 public void CC() { CCddl.Items.Clear(); ListItem l = new ListItem(); l.Text = "-Select-"; CCddl.Items.Add(l);

在这里,我尝试使用like语句从db中选择一个数据,但它使用我的数据的第一位进行搜索。但我需要编写代码,比如搜索,而不是数据的前3位。有人能帮我吗

public void CC()
        {
            CCddl.Items.Clear();
            ListItem l = new ListItem();
            l.Text = "-Select-";
            CCddl.Items.Add(l);
            CCddl.SelectedIndex = 0;
            con.Open();
            SqlCommand cmd = new SqlCommand("select Componetcode from dbo.tbl_component where Sitecode like '%" + TextBox1.Text + "%'", con);
            SqlDataReader dr1;
            dr1 = cmd.ExecuteReader();
            while (dr1.Read())
            {
                ListItem n = new ListItem();
                n.Text = dr1["Componetcode"].ToString().Trim();
                CCddl.Items.Add(n);
            }
            dr1.Close();
            con.Close();
        }
您不能对需要使用cast或convert将数字转换为stirng的数字进行类似操作

编辑

您还可以使用substring函数跳过列中的前三个字符或数据

 select * from (
    select column1,cast(column2 as varchar(30)) as column2  from tablename 
  ) d  where 
    substring(column2,4, LEN(column2) - 3 )  like '%textosearch%'
你需要写下来

select * from tablename where column like '___textosearch%'
因此,您的代码将是

  SqlCommand cmd = new SqlCommand("select Componetcode from dbo.tbl_component
         where Sitecode like '___" + TextBox1.Text + "%'", con); 
_允许您在sql中匹配单个字符,因此您需要像我在代码中所做的那样编写三个字符


还可以使用sql参数修改您的代码,以避免sql注入攻击

我看到sql注入。可能相关:。如果您获得了所需的信息,请不要忘记升级投票并将答案标记为已接受。.C与VB.NET不同,没有like运算符,因此您的标题具有误导性。您也不应该在标题前加上主标记C。我可以添加..'“你的代码不安全”不是你的问题-我看到这个恼人的关于安全性的评论,当问题是关于字符串替换或其他什么的时候,在大多数与SQL相关的在线问题中与注入无关!准备好了,你们中的任何一个煽动者都开始思考“非常清楚的问题陈述!”朋友,事实上,现在是加载所有数据的时候了db@AravindSai-刚刚删除了fir%符号并尝试我在我的代码中更新的代码可能适用于您…未得到任何更改friendsure。。我把屏幕贴上去好吗shot@AravindSai-您也可以尝试我在编辑中使用的子字符串功能。。。。