2010-06-21 69 views
1
//cmd.CommandText = @"select MaKH from KHACHHANG where HoTenKH='a'"; 
cmd.CommandText = @"select MaKH from KHACHHANG where HoTenKH=$tenKH"; 
cmd.Parameters.Add(new SQLiteParameter("$tenKH", tenKH)); 

注释行工作,CMD是的DbCommand,我已经试过SQL添加字符串作为参数

cmd.CommandText = @"select MaKH from KHACHHANG where HoTenKH='$tenKH'"; 

但它不工作也没有。

+0

你是否收到错误信息,或者你得到零结果? – egrunin 2010-06-21 03:03:27

+0

什么数据库软件? – 2010-06-21 03:09:18

回答

2

这似乎是愚蠢的,但你要确保做到这一点:

string tenKH = "a"; 

之前这样做:

cmd.CommandText = @"select MaKH from KHACHHANG where HoTenKH = @tenKH"; 
cmd.Parameters.Add(new SQLiteParameter("@tenKH", tenKH)); 
+0

为什么downvote?这是一个完全合理的问题。而且他还没有告诉使用什么“不起作用”。 – egrunin 2010-06-21 03:13:58

+0

这真的很有道理。我传递tenKH = textBox.ToString(); ,我改为tenKH = textBox.Text; <纯字符串,它的工作原理。谢谢 – nXqd 2010-06-21 03:23:17

+0

@对错误的投票表示歉意,你会得到我最好的投票,并尊重:)我是一个年轻的开发者。 – nXqd 2010-06-21 03:24:00

1

用@符号来代替$前缀的参数名

+0

它不起作用。我改变它。 – nXqd 2010-06-21 02:11:24

1

的SQLite使用一个冒号来指定一个命名的参数,而不是一个美元符号。尝试

cmd.CommandText = @"select MaKH from KHACHHANG where HoTenKH=:tenKH"; 
cmd.Parameters.Add(new SQLiteParameter("tenKH", tenKH)); 

你也可以,如果你想要的代码看起来更像SQL Server代码使用@符号:

cmd.CommandText = @"select MaKH from KHACHHANG where [email protected]"; 
cmd.Parameters.Add(new SQLiteParameter("tenKH", tenKH)); 
+0

我试过将它改为@但它似乎不起作用。 – nXqd 2010-06-21 02:10:14

+0

@nXqd:你试过冒号吗?看我的第一个例子。 – 2010-06-21 02:24:36

+0

我试过两种方法,MaKH Table中的HoTenKH是char(30),tenKH是一个字符串。它会导致问题吗? – nXqd 2010-06-21 02:26:53