SQL之类的声明

时间:2012-06-04 11:19:28

标签: c# sql

这里我试图从db中选择一个数据使用like语句,但是它搜索了我的数据的第一位数字。但我需要编写代码,比如搜索而不是我数据的前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();
        }

1 个答案:

答案 0 :(得分:1)

你无法在数字上操作,你需要通过使用强制转换或转换来将数字转换成数字......

修改

你也可以利用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注入攻击