首页 新闻 会员 周边

C#中Sql语句出错了,但是死活不知道咋改

0
悬赏园豆:100 [已解决问题] 解决于 2012-07-13 08:52

protected void nianDdl_SelectedIndexChanged(object sender, EventArgs e)//这里有错
        {
            string nian = nianDdl.Text.ToString().Trim();
            if (Convert.ToInt32(et.yearcount(nian, id1)) > 0)
            {

                Response.Write(et.yearcount(nian, id1));
                dt1 = et.GetDataBy9(nian,id1);

                jiaofeiDdl.SelectedValue = dt.Rows[0]["jiaofei"].ToString();
                xuexiDdl.SelectedValue = dt.Rows[0]["keshi"].ToString();
                huanzhengDdl.Text = dt.Rows[0]["huanzheng"].ToString();
                kaoshiDdl.Text = dt.Rows[0]["kaoshi"].ToString();
                lunwenDdl.Text = dt.Rows[0]["lunwen"].ToString();
                beizhuText.Text = dt.Rows[0]["beizhu"].ToString();
                GridView5.DataSource = dt;
                GridView5.DataBind();
            }
        }

我本来是想让下拉列表的其余项随着年份这一项变化,但是现在却是卡在了sql语句上,按理说

getdataby9应该只返回一列的,但是现在他却返回4列,而且也不是我想要的,这是为什么??、求解答。。。

羽商宫的主页 羽商宫 | 老鸟四级 | 园豆:2490
提问于:2012-07-12 17:22
< >
分享
最佳答案
1

仔细看看你绑定的数据, 我觉得你绑定到错误的datatable了

 

                Response.Write(et.yearcount(nian, id1));
                dt1 = et.GetDataBy9(nian,id1);

                jiaofeiDdl.SelectedValue = dt.Rows[0]["jiaofei"].ToString();
                xuexiDdl.SelectedValue = dt.Rows[0]["keshi"].ToString();
                huanzhengDdl.Text = dt.Rows[0]["huanzheng"].ToString();
                kaoshiDdl.Text = dt.Rows[0]["kaoshi"].ToString();
                lunwenDdl.Text = dt.Rows[0]["lunwen"].ToString();
                beizhuText.Text = dt.Rows[0]["beizhu"].ToString();
                GridView5.DataSource = dt;
                GridView5.DataBind();
收获园豆:70
gunsmoke | 老鸟四级 |园豆:3592 | 2012-07-13 05:41

是啊,我解决了已经。。。。不过也要谢谢您。。。。还是太不细心啊。。。

羽商宫 | 园豆:2490 (老鸟四级) | 2012-07-13 08:52
其他回答(2)
0

不是很理解问题。建议把表结构和表中数据放上来

收获园豆:15
CrazyJinn | 园豆:799 (小虾三级) | 2012-07-12 17:43

这里一共六行,我是按照nian和personid来搜的,就是像上面的Getdataby9那里定义的,按理说应该返回1行吧,但是现在他却返回4行

getdataby9那句话是SELECT *
FROM Event
WHERE (year = @year) AND (personid = @id)

就是第三张图上的那句话

支持(0) 反对(0) 羽商宫 | 园豆:2490 (老鸟四级) | 2012-07-12 17:53

@王凌志: string nian = nianDdl.Text.ToString().Trim();你在这一句打个断点,看看nian的值是多少

支持(0) 反对(0) CrazyJinn | 园豆:799 (小虾三级) | 2012-07-12 18:01

@CrazyJinn: 我用vs2010测过了。。。。就是我的下拉列表里的值。。。。

支持(0) 反对(0) 羽商宫 | 园豆:2490 (老鸟四级) | 2012-07-12 18:06

@王凌志: 不要急,单步调试一点点看,能找出哪里错了的。下班了,祝问题解决

支持(0) 反对(0) CrazyJinn | 园豆:799 (小虾三级) | 2012-07-12 18:18

@CrazyJinn: 恩恩,麻烦您了

支持(0) 反对(0) 羽商宫 | 园豆:2490 (老鸟四级) | 2012-07-12 18:47
0

返回4行,应该执行的SQL语句是:

SELECT *
FROM Event
WHERE (year < @year) AND (personid = @id)

你检查一下,是不是哪个地方把SQL语句传错了

收获园豆:15
dudu | 园豆:30948 (高人七级) | 2012-07-12 18:02

我就是只想要一个值,可是他给了我四个。。。。就是第一张图最底下的那一张表。。。。。

支持(0) 反对(0) 羽商宫 | 园豆:2490 (老鸟四级) | 2012-07-12 18:08

@王凌志: 你用SQL Profiler监测一下实际执行的SQL语句

支持(0) 反对(0) dudu | 园豆:30948 (高人七级) | 2012-07-12 18:10

@dudu: 恩恩,谢谢了我试试。。。

支持(0) 反对(0) 羽商宫 | 园豆:2490 (老鸟四级) | 2012-07-12 18:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册