【问题标题】:How can I edit this Query?如何编辑此查询?
【发布时间】:2021-03-18 12:53:44
【问题描述】:

如何编辑此查询以检查两个或更多问题?目前我有一个问题,但似乎不适用于两个或更多问题?

USE [C:\USERS\SYEDH\ONEDRIVE\DESKTOP\QUIZAPPS\QUIZAPPS\APP_DATA\QUIZAPPLICATION.MDF]
GO
SELECT  submittedanswer.sa, answer.ans 
from answer 
INNER JOIN
( SELECT TOP 1 sa FROM submittedanswer order by ID DESC) 
AS submittedanswer ON submittedanswer.sa=answer.ans
GO

数据库设计是这样的: quizapplication.mdf:

  1. answer:id,ans
  2. 比较:id、值
  3. 提交的答案:id,sa

后面的代码是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace QuizApps
{
    public partial class Home : System.Web.UI.Page
    {
        string submittedanswer;
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
        {

        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\syedh\\OneDrive\\Desktop\\QuizApps\\QuizApps\\App_Data\\quizapplication.mdf;Integrated Security=True");
            SqlCommand insertQuery = new SqlCommand(@"INSERT INTO [dbo].[submittedanswer]
            ([sa])
            VALUES
            (" + submittedanswer+")", con);
            con.Open();
            insertQuery.ExecuteNonQuery();
            con.Close();
            Response.Write("<script>alert('Your Answer Has Been Submitted Successfully')</script>");
            SqlCommand cmd1 = new SqlCommand("SELECT  submittedanswer.sa, answer.ans from answer INNER JOIN( SELECT TOP 1 sa FROM submittedanswer order by ID DESC) AS submittedanswer ON submittedanswer.sa=answer.ans", con);
            SqlDataAdapter sda = new SqlDataAdapter(cmd1);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                SqlCommand cmd3 = new SqlCommand(@"INSERT INTO [dbo].[compare] 
                ([value])
            VALUES
                ('Correct')", con);
                con.Open();
                cmd3.ExecuteNonQuery();
                con.Close();
            }
            else 
            {
                SqlCommand cmd3 = new SqlCommand (@"INSERT INTO [dbo].[compare] 
                ([value])
            VALUES
                ('Incorrect')", con);
                con.Open();
                cmd3.ExecuteNonQuery();
                con.Close();
            }

        }

        protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
        {
            submittedanswer = "8848";

        }

        protected void RadioButton2_CheckedChanged1(object sender, EventArgs e)
        {
            submittedanswer = "9848";
        }

        protected void RadioButton3_CheckedChanged(object sender, EventArgs e)
        {
            submittedanswer = "10848";
        }

        protected void RadioButton4_CheckedChanged(object sender, EventArgs e)
        {
            submittedanswer = "11848";
        }

        protected void btnCheck_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\syedh\\OneDrive\\Desktop\\QuizApps\\QuizApps\\App_Data\\quizapplication.mdf;Integrated Security=True");
            SqlCommand cmd4 = new SqlCommand("SELECT TOP 1 value FROM compare ORDER BY ID DESC", con);
            SqlDataAdapter sda = new SqlDataAdapter(cmd4);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            Response.Write("Your Answer is "+dt.Rows[0][0]);
        }
    }
}

前端代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="QuizApps.Home" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table align="center">
           <tr>
               <td>
                   <asp:Label ID="Label1" runat="server" Text="What Is The Height Of Mt. Everest?"></asp:Label>

               </td>
           </tr>
                <tr>
                    <td>
                        <asp:RadioButton GroupName="quiz" ID="RadioButton1" runat="server" Text="8848" OnCheckedChanged="RadioButton1_CheckedChanged"/><br />
                        <asp:RadioButton GroupName="quiz" ID="RadioButton2" runat="server" Text="9848" OnCheckedChanged="RadioButton2_CheckedChanged1"/><br />
                        <asp:RadioButton GroupName="quiz" ID="RadioButton3" runat="server" Text="10848" OnCheckedChanged="RadioButton3_CheckedChanged"/><br />
                        <asp:RadioButton GroupName="quiz" ID="RadioButton4" runat="server" Text="11848" OnCheckedChanged="RadioButton4_CheckedChanged"/><br />
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
                        <asp:Button ID="btnCheck" runat="server" Text="Check" OnClick="btnCheck_Click" />
                    </td>
                </tr>
                </table>
        </div>
    </form>
</body>
</html>

【问题讨论】:

标签: sql asp.net sql-server tsql


【解决方案1】:

如果理解正确,您有一个带有 id 的答案表,并且提交的答案表具有答案 id,所以您想返回这 2 个表之间的匹配答案?为此,您可以创建一个内部联接。

SELECT  submittedanswer.sa, answer.ans from answer inner join submittedanswer on submittedanswer.id = answer.id and submittedanswer.sa=answer.ans

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-20
    • 2015-08-14
    • 1970-01-01
    • 2021-01-15
    • 2011-10-30
    • 1970-01-01
    • 2013-02-01
    • 2012-02-29
    相关资源
    最近更新 更多