一个类方法中引用另一个类方法的对象数组

高华子 2014-10-07 11:52:08
// 下面是一个类中的方法,
public object Getessaies(int TID ) {
Essay[] es = new Essay[10]; //假定每个老师最多可以出10个论文题目:
string Connstr = System.Configuration.ConfigurationManager.AppSettings["sqlconn"];
OleDbConnection conn = new OleDbConnection(Connstr);
OleDbCommand comm = new OleDbCommand("select eid,ename,introduce from essay where tid = '" + TID + "'", conn);
comm.CommandType = CommandType.Text;
OleDbDataReader rs;
if (conn.State == ConnectionState.Closed)
conn.Open();
rs = comm.ExecuteReader();
sumEssay = 1; //前面类中定义的静态变量
while(rs.Read())
{
Essay essay = new Essay();
es[sumEssay] = essay;
es[sumEssay].eid = Convert.ToInt32(rs["eid"]);
es[sumEssay].ename = rs["ename"].ToString();
es[sumEssay].introduce = rs["introduce"].ToString();
sumEssay++;
}
rs.Close();
conn.Close();
return es;
}


public class Class1
{

int tid = 1;


private int i;

public string tab()
{
Essay es = new Essay();
Essay[] esArray= new Essay[10];
DAL_Essay dal_es = new DAL_Essay();
esArray = dal_es.Getessaies(tid); //将返回值对象数组的首地址赋给esArray,此处的赋值正确吗?如果不正确怎么改呢 string abc = "";
abc += "<table style=\"width:100%;\">";
abc += "<tr>";
abc += "<td>论文编号 </td>";
abc += "<td>论文题目 </td>";
abc += "<td>论文简介 </td>";
abc += "</tr>";
i = 1; //用于控制拼接时的换行。

while (i <= DAL_Essay.sumEssay)
{
abc += "<td>'" + esArray[i].eid + "' </td>"; //错误提示:esArray[i]未将对象引用设置到对象实例,应该怎么改呢
abc += "<td>'" + esArray[i].ename + "'</td>";
abc += "<td>'" + esArray[i++].introduce + "'</td>";
if (i % 3 == 0)
{ abc += "</tr>"; }

}
abc += " </table>";
return abc;
}

}FF
...全文
116 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
宝_爸 2014-10-07
  • 打赏
  • 举报
回复
写了个简单的测试代码,测试通过

    public class Essay
    {
        public int eid { get; set; }
        public string ename { get; set; }
        public string introduce { get; set; }
    }


static public object Getessaies(int TID)
        {
            Essay[] es = new Essay[10];

            for (int i = 0; i < 10; ++i)
            {
                Essay essay = new Essay();
                es[i] = essay;
                es[i].eid = i;
                es[i].ename = i.ToString();
                es[i].introduce = i.ToString();
            }

            return es;
        }
测试:

            Essay[] esArray = Getessaies(0) as Essay[];

            if (esArray != null)
            {
                foreach (var essay in esArray)
                {
                    Console.WriteLine(essay.eid);
                }
            }
宝_爸 2014-10-07
  • 打赏
  • 举报
回复
第一 : sumEssay = 1; 数组应该从0开始。 第二:编译不通啊。

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧