这里我试图从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();
}
答案 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注入攻击