ayazhiha 2014-12-08 14:00 采纳率: 50%
浏览 2071
已采纳

vs2010C#Web开发3个Dropdown控件从sql数据库中的4个表显示数据

实现效果:第一个下拉控件是选择学院,第二个下拉控件是选择系部,第三个下拉控件是选择班级。
从网上找了个后台代码:
前台:

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="StudInfo.aspx.cs" Inherits="Modules_StudInfo" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div align="center">
    请选择学院:<asp:DropDownList ID="drdlXY" runat="server">

        </asp:DropDownList><br />
    请选择系部:<asp:DropDownList ID="drdlXB" runat="server">
        </asp:DropDownList><br />
    请选择班级:<asp:DropDownList ID="drdlCL" runat="server">
        </asp:DropDownList><br />
        <asp:Repeater ID="Repeater1" runat="server">
        </asp:Repeater>
    </div>
    </form>
</body>
</html>

后台代码:

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

public partial class Modules_StudInfo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string ConnString = ConfigurationSettings.AppSettings["SqlConnString"];
            SqlConnection Conn = new SqlConnection(ConnString);
            try
            {
                Conn.Open();
                this.drdlXY.Items.Add("请选择!");
                this.drdlXB.Items.Add("请选择!");
                this.drdlCL.Items.Add("请选择!");
                string strSQL = "select XueYuanName from XueYuan select XiBuName from XiBu select ClassName from Class";
                SqlCommand com = new SqlCommand(strSQL, Conn);
                SqlDataReader dr = com.ExecuteReader();
                if(dr.Read())
                {
                    this.drdlXY.Items.Add(dr["XueYuanName"].ToString());
                    this.drdlXB.Items.Add(dr["XiBuName"].ToString());
                    this.drdlCL.Items.Add(dr["ClassName"].ToString());
                }

            }
            //catch (Exception ex)
            //{
            //    Response.Write("<scirpt>alert('" + ex.Message.ToString() + "')</script>");

            //}
            finally
            {
                Conn.Close();
            }
        }

    }

}

但是这个出不来,如果把while中的后两个删掉,sql语句中只输入select XuYuanName from XuYuan 就不会提示错误,但是只有第一个下拉控件能实现功能。
显示错误

  • 写回答

3条回答

  • q107770540 2014-12-08 15:32
    关注
     我想楼主所谓的 while应该是指if 这段代码:
    if(dr.Read())
                    {
                        this.drdlXY.Items.Add(dr["XueYuanName"].ToString());
                        this.drdlXB.Items.Add(dr["XiBuName"].ToString());
                        this.drdlCL.Items.Add(dr["ClassName"].ToString());
                    }
    

    你要具体说明一下你的错误信息是什么

    看完你的SQL语句,我知道问题在哪里了,问题出在你的SQL语句上:

    string strSQL = "select XueYuanName from XueYuan select XiBuName from XiBu select ClassName from Class";

    你换成这段试试:

    string strSQL = "select XueYuanName,XiBuName,ClassName from XueYuan ,XiBu ,Class";

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码