2 ayazhiha ayazhiha 于 2014.12.08 22:00 提问

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
q107770540   Ds   Rxr 2014.12.08 23: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";

ayazhiha
ayazhiha 对,,我贴不上图片 ,
接近 3 年之前 回复
caozhy
caozhy   Ds   Rxr 2014.12.08 22:49

你的代码中哪里有while?
报什么错也没说。

duanzi_peng
duanzi_peng   Rxr 2014.12.09 09:37

if(dr.Read())
->while(dr.Read())

从来没有见过 string strSQL = "select XueYuanName from XueYuan select XiBuName from XiBu select ClassName from Class";

这个样的查询语句,完全可以在sql MMS中 创建视图,在cs中根据selectindex的改变查询对应视图中的数据并绑定到控件上。

Csdn user default icon
上传中...
上传图片
插入图片