错误信息指出SqlDataReader dr = comm.ExecuteReader();有误。
所有代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
private SqlConnection con;
private SqlDataAdapter da;
private DataSet ds;
protected string pagetitle; //网页标题 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
con=new SqlConnection("server=.;database=testFrameWork;uid=sa;pwd='sa'");
da = new SqlDataAdapter("select * from Repast_area", con);
ds = new DataSet();
da.Fill(ds, "area");
ds.Tables["area"].DefaultView.Sort = "area_id ASC";
ddlS.DataSource = ds.Tables["area"].DefaultView;
ddlS.DataValueField = "area_id";
ddlS.DataTextField = "area_name";
ddlS.DataBind();
}
BindDrop(); pagetitle = Label1.Text;
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(ddlS.SelectedItem.Text);
Response.Write(ddlC.SelectedItem.Text);
} protected void BindDrop()
{
//ddlS.Attributes.Add("onchange", "Go(this)");
string str = Request.QueryString["parent_id"];
string str1 = ddlS.SelectedValue;
Response.Write(str1);
//如果str加个字符串!=原来的字符串则说明触发过ddlS的onchange事件
if ((str + "abc") != "abc")
{
//绑定 ddlC控件
BindChild(str);//把传来的父DropDownList的value做为参数
}
else
BindParent(str1);
}
protected void BindParent(string str)
{
//如果是第一次请求或者是刷新这个页面则根据ddlS的值来选择
//把参数转化成int
int i = Convert.ToInt32(str);
ddlC.Items.Clear();
ddlC.Items.Add(new ListItem("请选择", "0"));
//得到数据库连接字符串
string connStr = "server=.;database=testFrameWork;uid=sa;pwd='sa'";
//初始化个conn对象
SqlConnection conn = new SqlConnection(connStr);
//数据库语句
string commStr = string.Format("select AR_id,AR_name from Area_road where area_id={0}", i);
//建立数据库命令对象
SqlCommand comm = new SqlCommand(commStr, conn);
//打开数据库
conn.Open();
//执行命令
SqlDataReader dr = comm.ExecuteReader();
//循环dr,给ddlS添加条目
while (dr.Read())
{
ddlC.Items.Add(new ListItem(dr[1].ToString(), dr[0].ToString()));
//也可以这样
//ddlS.Items.Add(new ListItem(dr["phone_text"].ToString(),dr["phone_value"].ToString()));
}
ddlC.ClearSelection();
ddlS.Items[0].Selected = false;
//添加下面这话的意思是当点提交按钮提交窗体的时候第二个ddlC的状态能够得到保存
ddlC.SelectedValue = Request.Form["ddlC"];
dr.Close();
conn.Close();
}
protected void BindChild(string str)
{
//通过js给包括dropdownlist任何控件添加的内容不会被保存状态
//把参数转化成int
int i = Convert.ToInt32(str); string result = ""; Response.Clear();
string connStr = "server=.;database=testFrameWork;uid=sa;pwd='sa'";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand comm = conn.CreateCommand();
string commStr = string.Format("select AR_name,AR_id from Area_road where area_id={0}", i);
comm.CommandText = commStr;
conn.Open();
SqlDataReader dr = comm.ExecuteReader();
while (dr.Read())
{
result += "," + dr[1].ToString() + "|" + dr[0].ToString();
}
Response.Write(result);
Response.Flush();
Response.Close();
dr.Close();
conn.Close();
}
protected void btnOk_Click(object sender, EventArgs e)
{
//Response.Write(ddlS.SelectedItem.Text);
//Response.Write(ddlC.SelectedItem.Text);
Label1.Text = ddlS.SelectedItem.Text + "<br>" + ddlC.SelectedItem.Text;
}
}
所有代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
private SqlConnection con;
private SqlDataAdapter da;
private DataSet ds;
protected string pagetitle; //网页标题 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
con=new SqlConnection("server=.;database=testFrameWork;uid=sa;pwd='sa'");
da = new SqlDataAdapter("select * from Repast_area", con);
ds = new DataSet();
da.Fill(ds, "area");
ds.Tables["area"].DefaultView.Sort = "area_id ASC";
ddlS.DataSource = ds.Tables["area"].DefaultView;
ddlS.DataValueField = "area_id";
ddlS.DataTextField = "area_name";
ddlS.DataBind();
}
BindDrop(); pagetitle = Label1.Text;
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(ddlS.SelectedItem.Text);
Response.Write(ddlC.SelectedItem.Text);
} protected void BindDrop()
{
//ddlS.Attributes.Add("onchange", "Go(this)");
string str = Request.QueryString["parent_id"];
string str1 = ddlS.SelectedValue;
Response.Write(str1);
//如果str加个字符串!=原来的字符串则说明触发过ddlS的onchange事件
if ((str + "abc") != "abc")
{
//绑定 ddlC控件
BindChild(str);//把传来的父DropDownList的value做为参数
}
else
BindParent(str1);
}
protected void BindParent(string str)
{
//如果是第一次请求或者是刷新这个页面则根据ddlS的值来选择
//把参数转化成int
int i = Convert.ToInt32(str);
ddlC.Items.Clear();
ddlC.Items.Add(new ListItem("请选择", "0"));
//得到数据库连接字符串
string connStr = "server=.;database=testFrameWork;uid=sa;pwd='sa'";
//初始化个conn对象
SqlConnection conn = new SqlConnection(connStr);
//数据库语句
string commStr = string.Format("select AR_id,AR_name from Area_road where area_id={0}", i);
//建立数据库命令对象
SqlCommand comm = new SqlCommand(commStr, conn);
//打开数据库
conn.Open();
//执行命令
SqlDataReader dr = comm.ExecuteReader();
//循环dr,给ddlS添加条目
while (dr.Read())
{
ddlC.Items.Add(new ListItem(dr[1].ToString(), dr[0].ToString()));
//也可以这样
//ddlS.Items.Add(new ListItem(dr["phone_text"].ToString(),dr["phone_value"].ToString()));
}
ddlC.ClearSelection();
ddlS.Items[0].Selected = false;
//添加下面这话的意思是当点提交按钮提交窗体的时候第二个ddlC的状态能够得到保存
ddlC.SelectedValue = Request.Form["ddlC"];
dr.Close();
conn.Close();
}
protected void BindChild(string str)
{
//通过js给包括dropdownlist任何控件添加的内容不会被保存状态
//把参数转化成int
int i = Convert.ToInt32(str); string result = ""; Response.Clear();
string connStr = "server=.;database=testFrameWork;uid=sa;pwd='sa'";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand comm = conn.CreateCommand();
string commStr = string.Format("select AR_name,AR_id from Area_road where area_id={0}", i);
comm.CommandText = commStr;
conn.Open();
SqlDataReader dr = comm.ExecuteReader();
while (dr.Read())
{
result += "," + dr[1].ToString() + "|" + dr[0].ToString();
}
Response.Write(result);
Response.Flush();
Response.Close();
dr.Close();
conn.Close();
}
protected void btnOk_Click(object sender, EventArgs e)
{
//Response.Write(ddlS.SelectedItem.Text);
//Response.Write(ddlC.SelectedItem.Text);
Label1.Text = ddlS.SelectedItem.Text + "<br>" + ddlC.SelectedItem.Text;
}
}
解决方案 »
- 网站采集(爬虫)的几个问题
- 请教!为什么删除完数据其他数据也查询不到了?
- 如何在一台25端口无法使用的服务器上使用SmtpClient(.net)?
- 一个datagrid的问题 在线等,分虽然少点,但一定给
- ????????请各位大虾看看是哪里出错了??????
- 谁知道ajax方面的网站
- 今天我去新浪面试,出的题目你们能答出来么?
- 菜鸟刚学asp.net,建了2个webform页,webform1上一个按钮,怎么点击这个按钮,就会打开webform2页,还有怎么让用户必须由webform1页进入w
- 各位高手 我用freetextbox 是 在本地浏览 可以插入图片 在别的地方浏览时不可用
- WIN2000平台 在C#中使用CDO发信,如何设置邮件服务器及端口等参数
- url参数乱码问题“%CA%B1%BC%E4”如何解析成“时间”
- 请问IIS中默认网站中的停止项目、启动项目,跟命令IISreset有什么区别!!
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 列名 'area_id' 无效。源错误:
行 79: //鎵ц鍛戒护
行 80: SqlDataReader dr ;
行 81: dr = comm.ExecuteReader();
行 82: //寰幆dr锛岀粰ddlS娣诲姞鏉$洰
行 83: while (dr.Read())
源文件: d:\桌面\无刷新二级联动\无刷新二级联动\select\Default.aspx.cs 行: 81
这句话应该错了,楼主确定Area_road 有area_id字段??