当前位置:编程学习 > C#/ASP.NET >>

加载时在textbox中显示从数据库读出的内容

代码如下:
    protected void Page_Load(object sender, EventArgs e)
    {if (Session["Year"] == null)
        {
            Response.Write("<script>this.parent.location.href='../Default.aspx'</script>");
            return;
        }
        if (!Page.IsPostBack)
        {
            BaseClass bc = new BaseClass();
            DataSet ds = bc.GetDataSet("SELECT * FROM sxs WHERE year ='" + Session["Year"] + "'", "sxs");
            if (ds.Tables[0].Rows.Count > 0)
            {
                year.Text = ds.Tables[0].Rows[0]["year"].ToString();
                ed_les11.Text = ds.Tables[0].Rows[0]["ed_les11"].ToString();
                ed_les22.Text = ds.Tables[0].Rows[0]["ed_les22"].ToString();
                ed_ex11.Text = ds.Tables[0].Rows[0]["ed_ex11"].ToString();
                ed_ex22.Text = ds.Tables[0].Rows[0]["ed_ex22"].ToString();
                ed_gra11.Text = ds.Tables[0].Rows[0]["ed_gra11"].ToString();
                ed_gra22.Text = ds.Tables[0].Rows[0]["ed_gra22"].ToString();
                sc_ex11.Text = ds.Tables[0].Rows[0]["sc_ex11"].ToString();
                sc_ex22.Text = ds.Tables[0].Rows[0]["sc_ex22"].ToString();
                sc_ex33.Text = ds.Tables[0].Rows[0]["sc_ex33"].ToString();
                sch.Text = ds.Tables[0].Rows[0]["sch"].ToString();
                ops.Text = ds.Tables[0].Rows[0]["ops"].ToString();
                rp.Text = ds.Tables[0].Rows[0]["rp"].ToString();
                k.Text = ds.Tables[0].Rows[0]["k"].ToString();
                k.Text = ds.Tables[0].Rows[0]["k"].ToString();
            }

        }
        
    }
但运行结果是什么都没有读出来,什么原因呢?希望大家帮帮忙 --------------------编程问答-------------------- 设断点调试下,看dataset里面有内容没 --------------------编程问答-------------------- DataSet ds = bc.GetDataSet("SELECT * FROM sxs WHERE year ='" + Session["Year"] + "'", "sxs");


放一个断点  看看 执行有记录集吗? --------------------编程问答-------------------- 打个断点 调试 这个很好找的吧。。。 --------------------编程问答-------------------- 看session["Year"]有值没 把查询语句执行下看有没数据
有数据的话肯定能显示 --------------------编程问答--------------------

if (!IsPostBack)
        {           
                string sql = "select * from [HrDemand] where ID = " + Request.QueryString["ID"];
                dr = new CReader(sql);
                // 如果有下一条记录
                if (dr.Read())
                {
                    this.txtzw.Text = dr["HrName"].ToString();
                    this.txtNum.Text = dr["HrRequireNum"].ToString();
                    this.txtDy.Text = dr["HrSalary"].ToString();
                    this.txtAddr.Text = dr["HrAddress"].ToString();
                    this.txtDate.Text=dr["HrValidDate"].ToString();
                    this.txtContent.Value = dr["HrDetail"].ToString();
                }
                dr.Close();           
        }
--------------------编程问答--------------------
引用 2 楼 wyq29 的回复:
DataSet ds = bc.GetDataSet("SELECT * FROM sxs WHERE year ='" + Session["Year"] + "'", "sxs");


放一个断点 看看 执行有记录集吗?

执行后没有记录集,怎么回事呢? --------------------编程问答-------------------- "SELECT * FROM sxs WHERE year ='" + Session["Year"] .toString()+ "'", "sxs"

看看 sql语句   复制粘贴到数据库看能不能查出数据 --------------------编程问答--------------------
引用 7 楼 lijing3333 的回复:
"SELECT * FROM sxs WHERE year ='" + Session["Year"] .toString()+ "'", "sxs"

看看 sql语句 复制粘贴到数据库看能不能查出数据

查询时有以下错误:
将 varchar 值 '" + Session["Year"] + "' 转换为数据类型为 int 的列时发生语法错误。 --------------------编程问答-------------------- DataSet ds = bc.GetDataSet("SELECT * FROM sxs WHERE year =" + Session["Year"] + " ", "sxs");

去掉单引号 --------------------编程问答-------------------- 你的year是数值型吧?

 DataSet ds = bc.GetDataSet("SELECT * FROM sxs WHERE year =" + Convert.ToInt32(Session["Year"]), "sxs"); --------------------编程问答-------------------- year是数值型


if(Session["Year"]!=null)
{
 DataSet ds = bc.GetDataSet("SELECT * FROM sxs WHERE year =" + Convert.ToInt32(Session["Year"]), "sxs");
 //其他代码
} --------------------编程问答-------------------- 用SQLDATAREADER或则SQLDATAADAPTER配合DATASET就可以
LZ试一下就知道了 --------------------编程问答--------------------
引用 9 楼 lucky0000 的回复:
DataSet ds = bc.GetDataSet("SELECT * FROM sxs WHERE year =" + Session["Year"] + " ", "sxs");

去掉单引号

去掉了还是不行,查询出来的记录集里面还是空的 --------------------编程问答-------------------- 那你数据表到底有没有 year=  session值的数据啊 --------------------编程问答--------------------
引用 14 楼 wyq29 的回复:
那你数据表到底有没有 year= session值的数据啊

我是前一页如入数据插入数据库后,跳转到这页再显示出来,前一页的代码:
protected void Button1_Click(object sender, EventArgs e)
    {
        BaseClass bc = new BaseClass();
        Boolean bl;
        bl = bc.SqlExecute("INSERT INTO sxs (year,ed_les11,ed_les22,ed_ex11,ed_ex22,ed_gra11,ed_gra22,sc_ex11,sc_ex22,sc_ex33,sch,ops,rp,k) VALUES ('" + year.Text + "','" + ed_les11.Text + "','" + ed_les22.Text + "','" + ed_ex11.Text + "','" + ed_ex22.Text + "','" + ed_gra11.Text + "','" + ed_gra22.Text + "','" + sc_ex11.Text + "','" + sc_ex22.Text + "','" + sc_ex33.Text + "','" + sch.Text + "','" + ops.Text + "','" + rp.Text + "','" + k.Text + "')");
        if (bl)
        {
            Session["Year"] = year.Text;
           Response.Redirect("~/ManageInfo/xsh.aspx");
        }
        else
        {
            Response.Write(bc.MessageBox("设置--失败!"));
        }
    } --------------------编程问答-------------------- 既然 year是数值类型 

你插入语句就不对

'" + year.Text + "'

你可以很简单的自我检查嘛   执行完  看看数据库里到底插入数据没有? --------------------编程问答--------------------
引用 16 楼 wyq29 的回复:
既然 year是数值类型 

你插入语句就不对

'" + year.Text + "'

你可以很简单的自我检查嘛 执行完 看看数据库里到底插入数据没有?

都插进去了,问题就是读不出来,才不知道问题在哪里 --------------------编程问答-------------------- 你的方法是不是有问题,要不然就没有那个数据 --------------------编程问答-------------------- 你把你断点的sql语句copy一下,放在sql里看看 能不能查到啊,查不到,就是你语句问题了! --------------------编程问答-------------------- 在查询分析器执行SQL语句
string sql="SELECT * FROM sxs WHERE year =" + (int)Session["Year"] + "";
查看数据库记录 --------------------编程问答-------------------- 貌似是方法有问题,有谁能提供其他方法吗? --------------------编程问答-------------------- 太有用了
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,