2013-10-20 115 views
0

我在這裏的工作是工作,但如果搜索1它顯示的40,而不是900,這裏是我的工作:搜索數據

command.CommandType = CommandType.Text; 
command.CommandText = ("SELECT * FROM Computation WHERE Transaction_ID LIKE '" + textBox1.Text.ToString() + "%'"); 

command.Connection = connection;  
connection.Open(); 
var reader = command.ExecuteReader();    
while (reader.Read()) 
{     
    textBox2.Text = (String.Format("{0000,0:N2}", Int32.Parse(reader["Total_Bill"].ToString()))); 
}     
connection.Close(); 

enter image description here

+0

爲什麼在這裏使用'LIKE'?因爲當你有這個'ID'時它可能會得到'11'。只需使用'SELECT * FROM Computation WHERE Transaction_ID = 1'。 –

+0

先生@SonerGönül這個問題是關閉的話題在這裏,我如何選擇Transaction_ID中的最後一個數據? –

+0

你可以使用一個查詢,比如'SELECT TOP 1 Transaction_ID FROM Computation ORDER BY Transaction_ID DESC' –

回答

3

正如我寫in my comment,我不不知道爲什麼你在這裏使用LIKE,但你可以ExecuteScalar這是完美的你的情況。

執行查詢,並返回查詢返回的結果集中第一行的第一列 。

贊;

command.CommandType = CommandType.Text; 
command.CommandText = ("SELECT Total_Bill FROM Computation WHERE Transaction_ID = @ID"); 
command.Parameters.AddWithValue("@ID", textBox1.Text);  
command.Connection = connection; 
try 
{  
    connection.Open(); 
    textBox2.Text = (String.Format("{0000,0:N2}", command.ExecuteScalar()));    
} 
catch (Exception ex) 
{ 
    Console.WriteLine(ex.Message); 
}     
connection.Close();