C# 如何打印SQL server的最后一条记录
我有一个数据库名“fees”,其中有4列(admno、receiptnumber、name、tutionfee)。这里的主键是“receiptnumber”。我已经输入了几个不同录取号码的记录。还有几个参赛作品的入场编号相同。现在我只想打印我输入的最后一条记录。我怎样才能打印。我已经写了一段代码,但第一条记录正在打印C# 如何打印SQL server的最后一条记录,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有一个数据库名“fees”,其中有4列(admno、receiptnumber、name、tutionfee)。这里的主键是“receiptnumber”。我已经输入了几个不同录取号码的记录。还有几个参赛作品的入场编号相同。现在我只想打印我输入的最后一条记录。我怎样才能打印。我已经写了一段代码,但第一条记录正在打印 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionSt
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();
string str;
str = "select * from fees where admno='" + temp + "'";
SqlCommand com = new SqlCommand(str, con);
SqlDataReader reader = com.ExecuteReader();
reader.Read();
TextBox1.Text = reader["admno"].ToString();
TextBox2.Text = reader["receiptnumber"].ToString();
TextBox3.Text = reader["name"].ToString();
TextBox4.Text = reader["tutionfee"].ToString();
假设receiptnumber是一个标识字段,您将从按receiptnumber描述的费用订单中选择top 1*,
假设receiptnumber是一个标识字段,您将从按receiptnumber描述的费用订单中选择top 1*,这应该可以做到。添加参数以避免sql注入!
您需要按您的ID下单DESC
结尾并选择第一个(TOP1
)
这应该可以做到。添加参数以避免sql注入!
您需要按您的ID下单DESC
结尾并选择第一个(TOP1
)
哦,这很简单。只需颠倒查询顺序即可。在您的情况下,sql server中可能没有“第一个”和“最后一个”的概念(除非您定义了一些日期时间来对结果进行排序)。您必须定义“第一个”和“最后一个”的含义。根据您当前的结构,对于admno
,您可以得到最大值为receiptnumber
的记录。哦,这非常简单。只需颠倒查询顺序即可。在您的情况下,sql server中可能没有“第一个”和“最后一个”的概念(除非您定义了一些日期时间来对结果进行排序)。您必须定义“第一个”和“最后一个”的含义。根据您当前的结构,您可以得到最大值为receiptnumber
的记录,原因是admno
Downvote原因:没有处理更重要的问题:sql注入的安全隐患。任何让您高兴的@Zohar。OP询问如何获得最后一张唱片——我展示了一种技巧。我正在努力帮助别人(就像我学习时人们帮助我一样)。因为这是在我自己的工作日,所以我没有时间对他们的代码进行全面的评论。我不需要花太多时间来写一些关于它的东西,比如“永远不要连接字符串来创建sql语句,因为这是sql InjAction攻击的一个开口,请改用参数化查询”也许吧——但当我有自己的工作要做时,浏览问题会快得多,因为OP想知道如何获取最新记录,并键入一个两行回复来提供答案。在我看来,因为我试图迅速帮助别人而把我带到任务中是无礼的。就像我说的,不管什么能让你快乐。你知道,你不是唯一一个有一天工作的人。。。我们大多数人都是这样。阅读和回答我的评论肯定会花更少的时间。IMHO,要么给出最好的答案,要么一个也不给。否决理由:不处理更重要的问题:sql注入的安全隐患。任何让你高兴的@Zohar。OP询问如何获得最后一张唱片——我展示了一种技巧。我正在努力帮助别人(就像我学习时人们帮助我一样)。因为这是在我自己的工作日,所以我没有时间对他们的代码进行全面的评论。我不需要花太多时间来写一些关于它的东西,比如“永远不要连接字符串来创建sql语句,因为这是sql InjAction攻击的一个开口,请改用参数化查询”也许吧——但当我有自己的工作要做时,浏览问题会快得多,因为OP想知道如何获取最新记录,并键入一个两行回复来提供答案。在我看来,因为我试图迅速帮助别人而把我带到任务中是无礼的。就像我说的,不管什么能让你快乐。你知道,你不是唯一一个有一天工作的人。。。我们大多数人都是这样。阅读和回答我的评论肯定会花更少的时间。I’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
string Command = "select TOP 1 * from fees where admno = @admno ORDER BY receiptnumber DSEC";
using (SqlConnection mConnection = new SqlConnection(ConnectionString))
{
mConnection.Open();
using (SqlCommand cmd = new SqlCommand(Command, mConnection))
{
cmd.Parameters.Add(new MySqlParameter("@admno", temp));
using (SqlDataReader reader = cmd.ExecuteReader())
{
reader.Read();
TextBox1.Text = reader["admno"].ToString();
TextBox2.Text = reader["receiptnumber"].ToString();
TextBox3.Text = reader["name"].ToString();
TextBox4.Text = reader["tutionfee"].ToString();
}
}
}