C# 如何在C语言中用字符串参数值进行SQL查询
我试图从参数中获取一个字符串值,并获取公司的所有名称,其中名称以参数中的字母开头,但我并没有得到任何回报。执行此操作的正确语法是什么C# 如何在C语言中用字符串参数值进行SQL查询,c#,sql,C#,Sql,我试图从参数中获取一个字符串值,并获取公司的所有名称,其中名称以参数中的字母开头,但我并没有得到任何回报。执行此操作的正确语法是什么 public IEnumerable<Asiakas> GetByName(string arvo) { string sql = "SELECT ASNRO, YRITYS, SUKUNIMI, ETUNIMI, LAHIOSOITE, POSTITP, POSTINRO " +
public IEnumerable<Asiakas> GetByName(string arvo)
{
string sql = "SELECT ASNRO, YRITYS, SUKUNIMI, ETUNIMI, LAHIOSOITE, POSTITP, POSTINRO " +
"FROM dbo.ASIAKAS " +
"WHERE YRITYS LIKE '@KIRJAIN' " +
"ORDER BY ASNRO";
using (var cmd = Context.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.Add(new SqlParameter("@KIRJAIN", arvo));
var tulos = ToList(cmd);
return tulos;
}
}
不要在sql中使用引号,也不要在参数中使用@
public IEnumerable<Asiakas> GetByName(string arvo)
{
string sql = "SELECT ASNRO, YRITYS, SUKUNIMI, ETUNIMI, LAHIOSOITE, POSTITP, POSTINRO " +
"FROM dbo.ASIAKAS " +
"WHERE YRITYS LIKE @KIRJAIN " +
"ORDER BY ASNRO";
using (var cmd = Context.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.Add(new SqlParameter("KIRJAIN", arvo));
var tulos = ToList(cmd);
return tulos;
}
}
新的SqlParameterKIRJAIN,arvoDon在使用参数时不引用,如果需要,库将添加正确的引用-只要。。。比如@KIRJAIN。。。不像“@KIRJAIN”……但是如果我这样尝试,并且像@KIRJAIN%这样做,它只会在关键字“ORDER”附近返回错误的语法。另外,cmd.Parameters.Addcmd.CreateParameterKIRJAIN,arvo通常比cmd.Parameters.Addnew SqlParameterKIRJAIN,arvo更可取。@Steffe30这与您的问题不同。。。。。如果希望参数do cmd.Parameters.Addnew SqlParameterKIRJAIN中的%为,则为arvo+%;或者,如果您想在sql中执行此操作,其中类似于@KIRJAIN+“%”的Yrity作为进一步说明,参数不是文本替换,而是tsql变量