2013-10-20 86 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();