2010-06-21 126 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