Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何打印SQL server的最后一条记录_C#_Asp.net_Sql Server - Fatal编程技术网

C# 如何打印SQL server的最后一条记录

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

我有一个数据库名“fees”,其中有4列(admno、receiptnumber、name、tutionfee)。这里的主键是“receiptnumber”。我已经输入了几个不同录取号码的记录。还有几个参赛作品的入场编号相同。现在我只想打印我输入的最后一条记录。我怎样才能打印。我已经写了一段代码,但第一条记录正在打印

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();
        }
    }
}