读书人

请教该程序如何出错了,如何改?调试时显

发布时间: 2012-08-09 15:59:21 作者: rapoo

请问该程序怎么出错了,怎么改?调试时显示ORA-00911: invalid character,但是这个查询语句在数据库里是正确的
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
string sql = null;
oradb.oradb.connectstring = System.Configuration.ConfigurationManager.AppSettings["dycost"];
Structure.Chart.ChartE chart = new Structure.Chart.ChartE();
Structure.Chart.ChartE chart1 = new Structure.Chart.ChartE();
switch (this.DropDownList2.SelectedIndex)
{
case 0: //按team统计
sql = "select code_teamtype,teamtype,max(weight0) weight0,max(weight1) weight1,max(weight2) weight2,max(trains0) trains0,max(trains1) trains1,max(trains2) trains2 from " +
"(select code_teamtype,teamtype,case when tjdate=to_char(sysdate,'yyyy')-2 then weight end weight0,case when tjdate=to_char(sysdate,'yyyy')-1 then weight end weight1,case when tjdate=to_char(sysdate,'yyyy') then weight end weight2,case when tjdate=to_char(sysdate,'yyyy')-2 then trains end trains0,case when tjdate=to_char(sysdate,'yyyy')-1 then trains end trains1,case when tjdate=to_char(sysdate,'yyyy') then trains end trains2 from " +
"(select t.code_teamtype,teamtype, substr(TO_CHAR(TEAMDATE,'yyyymmdd'),1,4) tjdate,sum(t.weight) weight,sum(t.traincount) trains from vw_pro_trainwork t where substr(TO_CHAR(TEAMDATE,'yyyymmdd'),1,4) in(to_char(sysdate,'yyyy')-2,to_char(sysdate,'yyyy')-1,to_char(sysdate,'yyyy')) group by t.code_teamtype,teamtype,TEAMDATE ) " +
")group by code_teamtype,teamtype order by code_teamtype ";
chart.argumentstr = "TEAMTYPE";
chart.valuestr = new List<string>(new string[] { "weight0", "weight1", "weight2" });
chart.name = new List<string>(new string[] { DateTime.Now.Date.AddYears(-2).ToString("yyyy") + "年", DateTime.Now.Date.AddYears(-1).ToString("yyyy") + "年", DateTime.Now.Date.ToString("yyyy") + "年" });
chart.dtSource = oradb.oradb.filldata(sql).ToTable().Copy();//这里显示用户代码未处理oleDbException ORA-00911: invalid character
//生成吨数柱状图
Binding.Chart.ChartBar(chart, wcc3, "吨数完成情况");

chart1.argumentstr = "TEAMTYPE";
chart1.valuestr = new List<string>(new string[] { "trains0", "trains1", "trains2" });
chart1.name = new List<string>(new string[] { DateTime.Now.Date.AddYears(-2).ToString("yyyy") + "年", DateTime.Now.Date.AddYears(-1).ToString("yyyy") + "年", DateTime.Now.Date.ToString("yyyy") + "年" });
chart1.dtSource = oradb.oradb.filldata(sql).ToTable().Copy();
//生成车数柱状图
Binding.Chart.ChartBar(chart1, wcc4, "车数完成情况");
break;

case 1://按cargo统计
sql = "select code_cargoproj,cargoproj,max(weight0) weight0,max(weight1) weight1,max(weight2) weight2,max(trains0) trains0,max(trains1) trains1,max(trains2) trains2 from " +
"(select code_cargoproj,cargoproj,case when tjdate=to_char(sysdate,'yyyy')-2 then weight end weight0,case when tjdate=to_char(sysdate,'yyyy')-1 then weight end weight1,case when tjdate=to_char(sysdate,'yyyy') then weight end weight2,case when tjdate=to_char(sysdate,'yyyy')-2 then trains end trains0,case when tjdate=to_char(sysdate,'yyyy')-1 then trains end trains1,case when tjdate=to_char(sysdate,'yyyy') then trains end trains2 from " +
"(select t.code_cargoproj,cargoproj, substr(TO_CHAR(TEAMDATE,'yyyymmdd'),1,4) tjdate,sum(t.weight) weight,sum(t.traincount) trains from vw_pro_trainwork t where substr(TO_CHAR(TEAMDATE,'yyyymmdd'),1,4) in(to_char(sysdate,'yyyy')-2,to_char(sysdate,'yyyy')-1,to_char(sysdate,'yyyy')) group by t.code_cargoproj,cargoproj,TEAMDATE ) " +


")group by code_cargoproj,cargoproj order by code_cargoproj ";
chart.argumentstr = "CARGOPROJ";
chart.valuestr = new List<string>(new string[] { "weight0", "weight1", "weight2" });
chart.name = new List<string>(new string[] { DateTime.Now.Date.AddYears(-2).ToString("yyyy") + "年", DateTime.Now.Date.AddYears(-1).ToString("yyyy") + "年", DateTime.Now.Date.ToString("yyyy") + "年" });
chart.dtSource = oradb.oradb.filldata(sql).ToTable().Copy();
//生成吨数柱状图
Binding.Chart.ChartBar(chart, wcc3, "吨数完成情况");

chart1.argumentstr = "CARGOPROJ";
chart1.valuestr = new List<string>(new string[] { "trains0", "trains1", "trains2" });
chart1.name = new List<string>(new string[] { DateTime.Now.Date.AddYears(-2).ToString("yyyy") + "年", DateTime.Now.Date.AddYears(-1).ToString("yyyy") + "年", DateTime.Now.Date.ToString("yyyy") + "年" });
chart1.dtSource = oradb.oradb.filldata(sql).ToTable().Copy();
//生成车数柱状图
Binding.Chart.ChartBar(chart1, wcc4, "车数完成情况");
break;

case 2://按地点统计
sql = "select trainroad,max(weight0) weight0,max(weight1) weight1,max(weight2) weight2,max(trains0) trains0,max(trains1) trains1,max(trains2) trains2 from " +
"(select trainroad,case when tjdate=to_char(sysdate,'yyyy')-2 then weight end weight0,case when tjdate=to_char(sysdate,'yyyy')-1 then weight end weight1,case when tjdate=to_char(sysdate,'yyyy') then weight end weight2,case when tjdate=to_char(sysdate,'yyyy')-2 then trains end trains0,case when tjdate=to_char(sysdate,'yyyy')-1 then trains end trains1,case when tjdate=to_char(sysdate,'yyyy') then trains end trains2 from " +
"(select trainroad, substr(TO_CHAR(TEAMDATE,'yyyymmdd'),1,4) tjdate,sum(t.weight) weight,sum(t.traincount) trains from vw_pro_trainwork t where substr(TO_CHAR(TEAMDATE,'yyyymmdd'),1,4) in(to_char(sysdate,'yyyy')-2,to_char(sysdate,'yyyy')-1,to_char(sysdate,'yyyy')) group by trainroad,TEAMDATE) " +
")group by trainroad order by trainroad ";
chart.argumentstr = "TRAINROAD";
chart.valuestr = new List<string>(new string[] { "weight0", "weight1", "weight2" });
chart.name = new List<string>(new string[] { DateTime.Now.Date.AddYears(-2).ToString("yyyy") + "年", DateTime.Now.Date.AddYears(-1).ToString("yyyy") + "年", DateTime.Now.Date.ToString("yyyy") + "年" });
chart.dtSource = oradb.oradb.filldata(sql).ToTable().Copy();
//生成吨数柱状图
Binding.Chart.ChartBar(chart, wcc3, "吨数完成情况");

chart1.argumentstr = "TRAINROAD";
chart1.valuestr = new List<string>(new string[] { "trains0", "trains1", "trains2" });
chart1.name = new List<string>(new string[] { DateTime.Now.Date.AddYears(-2).ToString("yyyy") + "年", DateTime.Now.Date.AddYears(-1).ToString("yyyy") + "年", DateTime.Now.Date.ToString("yyyy") + "年" });
chart1.dtSource = oradb.oradb.filldata(sql).ToTable().Copy();
//生成车数柱状图
Binding.Chart.ChartBar(chart1, wcc4, "车数完成情况");


break;
case 3://按装卸统计

sql = "select code_loadunload,loadunload,max(weight0) weight0,max(weight1) weight1,max(weight2) weight2,max(trains0) trains0,max(trains1) trains1,max(trains2) trains2 from " +
"(select code_loadunload,loadunload,case when tjdate=to_char(sysdate,'yyyy')-2 then weight end weight0,case when tjdate=to_char(sysdate,'yyyy')-1 then weight end weight1,case when tjdate=to_char(sysdate,'yyyy') then weight end weight2,case when tjdate=to_char(sysdate,'yyyy')-2 then trains end trains0,case when tjdate=to_char(sysdate,'yyyy')-1 then trains end trains1,case when tjdate=to_char(sysdate,'yyyy') then trains end trains2 from " +
"(select t.code_loadunload,loadunload, substr(TO_CHAR(TEAMDATE,'yyyymmdd'),1,4) tjdate,sum(t.weight) weight,sum(t.traincount) trains from vw_pro_trainwork t where substr(TO_CHAR(TEAMDATE,'yyyymmdd'),1,4) in(to_char(sysdate,'yyyy')-2,to_char(sysdate,'yyyy')-1,to_char(sysdate,'yyyy')) group by t.code_loadunload,loadunload,TEAMDATE ) " +
")group by code_loadunload,loadunload order by code_loadunload ";
chart.argumentstr = "LOADUNLOAD";
chart.valuestr = new List<string>(new string[] { "weight0", "weight1", "weight2" });
chart.name = new List<string>(new string[] { DateTime.Now.Date.AddYears(-2).ToString("yyyy") + "年", DateTime.Now.Date.AddYears(-1).ToString("yyyy") + "年", DateTime.Now.Date.ToString("yyyy") + "年" });
chart.dtSource = oradb.oradb.filldata(sql).ToTable().Copy();
//生成吨数柱状图
Binding.Chart.ChartBar(chart, wcc3, "吨数完成情况");

chart1.argumentstr = "LOADUNLOAD";
chart1.valuestr = new List<string>(new string[] { "trains0", "trains1", "trains2" });
chart1.name = new List<string>(new string[] { DateTime.Now.Date.AddYears(-2).ToString("yyyy") + "年", DateTime.Now.Date.AddYears(-1).ToString("yyyy") + "年", DateTime.Now.Date.ToString("yyyy") + "年" });
chart1.dtSource = oradb.oradb.filldata(sql).ToTable().Copy();
//生成车数柱状图
Binding.Chart.ChartBar(chart1, wcc4, "车数完成情况");
break;
default:
break;
}

[解决办法]
把你的SQL语句放到PL/SQL里面执行下,会给出错误点(有红线标出),你这么乱的SQL+表结构未知,谁能看得出啊。

读书人网 >C#

热点推荐