程序的代码如下:string sql="";
string sqltd ="";
string sqltd1="";
string sqltd2="";
string sql1="select * from Conditiontable where term='"+comboBox1.Text+"' order by ConditionID";
OleDbDataAdapter oda1=new OleDbDataAdapter(sql1,SQLCONN);
DataTable dt1=new DataTable();
oda1.Fill(dt1);
string[] sqldr1=new string[dt1.Rows.Count];
string[] sqldr=new string[dt1.Rows.Count]; 
                int i,j;
for(j=1;j<dt1.Rows.Count-1;j++)
{
sqldr1[j]=",";
}
sqldr1[j]=" ";
for(i=1,j=1;i<dt1.Rows.Count;i++)
{
if(j<dt1.Rows.Count)
{
sqldr[i]= dt1.Rows[i]["ConDetail"].ToString();
sqltd="avg(condition"+i+") as "+sqldr[i]+"";
sqltd1="+sqldr1[j]+";
sqltd2 =string.Concat(sqltd2,sqltd,sqltd1);
}
j++;


}
sql="select p2.studentid as 学号,p1.studentname as 学生姓名,p3.coursename as 课程名,p2.* from studenttable"+comboBox1.Text+" as p1,(select studentid,courseid,"+sqltd2+"  from evaluatetable"+comboBox1.Text+" group by studentid,courseid)as p2,(select coursename,courseid from coursetable120012) as p3 where p1.studentid=p2.studentid and p2.courseid=p3.courseid and p2.studentid like '%"+txtSerch.Text+"%' order by 学号";OleDbCommand myCmd=new OleDbCommand(sql,SQLCONN);
DataTable dt=new DataTable();
OleDbDataAdapter oda=new OleDbDataAdapter(sql,SQLCONN);
oda.Fill(dt);
dataGrid3.DataSource=dt;目的是想写个字符串,可以在子表中进行avg运算,也就是这么一段代码
avg(condition"+i+") as "+sqldr[i]+"   因为每年的condition的个数不同,所以要动态的来写
请大家帮帮忙!
谢谢!