【问题标题】:Searching data in my database [duplicate]在我的数据库中搜索数据[重复]
【发布时间】:2013-10-28 22:40:05
【问题描述】:

我的工作在这里工作,但如果搜索 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();

【问题讨论】:

  • 为什么在这里使用LIKE?因为当你有这个ID 时,它也可能得到11。只需改用SELECT * FROM Computation WHERE Transaction_ID = 1
  • sir @SonerGönül 这个问题在这里是题外话,我如何选择 Transaction_ID 中的最后一个数据?
  • 您可以使用类似SELECT TOP 1 Transaction_ID FROM Computation ORDER BY Transaction_ID DESC的查询

标签: c# ms-access-2010 sql-like oledbcommand


【解决方案1】:

正如我写的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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    相关资源
    最近更新 更多