2401_83786250 2024-04-25 20:13 采纳率: 0%
浏览 2

ASP.NET连接SQLServer学生点击“我的信息”不出来界面

学生点击“我的信息”进入信息界面可以看到自己详细信息。
if (!IsPostBack)
{
DisplayStudentInfo(Request.QueryString["学号"]);
}

private void DisplayStudentInfo(string 学号)
{
string connectionString = "Data Source=localhost;Initial Catalog=奖学金评定系统;Integrated Security=True"; // 连接字符串
string query = "SELECT * FROM Student WHERE 学号 = @StudentID";

        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand(query, connection))
            {
                command.Parameters.AddWithValue("@StudentID", 学号);
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();

                if (reader.Read())
                {
                    Label1.Text = "学号: " + reader["学号"].ToString();
                    Label2.Text = "姓名: " + reader["姓名"].ToString();
                    Label3.Text = "性别: " + reader["性别"].ToString();
                    Label4.Text = "学院: " + reader["学院"].ToString();
                    Label5.Text = "成绩: " + reader["成绩"].ToString();
                    Label6.Text = "辅导员: " + reader["辅导员"].ToString();
                    Label7.Text = "身份证号: " + reader["身份证号"].ToString();
                }
                else
                {
                    // 如果没有找到学生,显示错误信息或者重定向到错误页面
                    Response.Write("未找到该学生信息。");
                }
            }
        }
    }

img

img


但是我点击“我的信息”,他打不开!然后就显示
System.Data.SqlClient.SqlException
HResult=0x80131904
Message=参数化查询 '(@StudentID nvarchar(4000))SELECT * FROM Student WHERE 学号 = @Stu' 需要参数 '@StudentID',但未提供该参数。
Source=.Net SqlClient Data Provider
StackTrace:
<无法计算异常堆栈跟踪>
然后我想知道该怎么改

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2024-04-25 20:13
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    图片内容

    1. 第一张图片是一个网页界面,显示有“学生登录”、“我的信息”、“我的电请”和“我的审核”等选项。这表明这是一个学生信息管理系统的界面。
    2. 第二张图片是一个错误信息的截图,显示了一个未处理的异常,具体是参数化查询需要参数@StudentID,但未提供该参数。

    问题概括

    问题是在ASP.NET应用程序中,当学生点击“我的信息”按钮时,页面无法正常显示学生的详细信息,并且抛出了一个SqlException异常,提示未提供必要的参数@StudentID

    问题出现原因

    问题出现的原因是在执行数据库查询时,虽然尝试添加了参数@StudentID,但实际上没有正确地将其传递给SQL命令。这可能是因为在添加参数时使用了错误的语法或者参数名不匹配。

    问题解决方案

    要解决这个问题,需要确保在构造SQL命令的参数时使用了正确的参数名称,并且该名称与查询字符串中定义的参数名称一致。

    提供代码

    以下是修改后的代码示例,它修正了添加参数的方法:

    private void DisplayStudentInfo(string 学号)
    {
        string connectionString = "Data Source=localhost;Initial Catalog=奖学金评定系统;Integrated Security=True"; // 连接字符串
        string query = "SELECT * FROM Student WHERE 学号 = @StudentID"; // 注意参数名称要与下面添加的参数名称一致
    
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand(query, connection))
            {
                // 注意:使用正确的方法来添加参数,并且确保参数名称与查询字符串中的一致
                command.Parameters.Add("@StudentID", SqlDbType.NVarChar).Value = 学号; // 使用Add方法并指定参数类型
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
    
                if (reader.Read())
                {
                    Label1.Text = "学号: " + reader["学号"].ToString();
                    Label2.Text = "姓名: " + reader["姓名"].ToString();
                    // ... 其他标签赋值
                }
                else
                {
                    Response.Write("未找到该学生信息。");
                }
            }
        }
    }
    

    示例代码运行方式

    要运行这段代码,你需要有以下环境:

    • 一个配置好的ASP.NET开发环境,如Visual Studio。
    • 一个运行中的SQL Server实例,并且已经创建了名为“奖学金评定系统”的数据库和相应的“Student”表。
    • 确保你的web.config文件中有正确的数据库连接字符串。

    运行方式:

    1. 将上述代码替换到你的ASP.NET项目中相应的方法里。
    2. 启动你的ASP.NET开发服务器并运行你的应用程序。
    3. 通过浏览器访问你的应用程序,并尝试点击“我的信息”按钮。

    示例代码预期运行结果

    如果代码正确运行,当你点击“我的信息”按钮时,页面将显示学生的详细信息,而不会抛出异常。

    参考链接

    请注意,上述链接仅为示例,并非实际参考来源。在实际开发中,你可能需要根据你的具体环境和需求进行调整。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月25日

悬赏问题

  • ¥15 Unity 2022.3.34版本安卓打包apk失败,gradle配置问题,用的是mono2x
  • ¥15 R语言中安装bibliometrix 后运行biblioshiny出现问题
  • ¥20 关于#android#的问题:用开发助手发现找不到控件(autojs)
  • ¥15 dir815漏洞反弹shell失败
  • ¥15 支付宝小程序云函数登录获取user_id失败
  • ¥50 python for 循环速度慢
  • ¥15 CubeMX生成的代码用keil编译有报错
  • ¥15 Stata链式中介效应代码修改
  • ¥15 pip安装PyAV报错
  • ¥15 latex投稿显示click download