+ -
当前位置:首页 → 问答吧 → 请教一个ADO.NET的写法

请教一个ADO.NET的写法

时间:2011-12-11

来源:互联网

C# code
            List<WaitingEmaliList> weList = new List<WaitingEmaliList>();
            SqlConnection connection = new SqlConnection(cnStr);
            SqlCommand cmd = connection.CreateCommand();     
            cmd.CommandText = "SELECT [emailID] ,[sentTime],[subject],[body] FROM [MailManDB].[dbo].[WaitingEmaliLists] a where  DateDiff(DD,sentTime,GetDate())=0";
            connection.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
              
                weList.Add(new WaitingEmaliList { emailID = Convert.ToInt32(dr["emailID"].ToString()), body = dr["body"].ToString(), subject = dr["subject"].ToString() });
            }          
            dr.Dispose();
            connection.Close();
            foreach (WaitingEmaliList we in weList)
            {         
                cmd = connection.CreateCommand();
                connection.Open();
                cmd.CommandText = "  SELECT e.addressId ,e.toAddress,e.toDisplayName FROM EmailAddressLists e WHERE e.emailID=@id";
                SqlParameter parameters = new SqlParameter("@id", we.emailID);
                cmd.Parameters.Add(parameters);
                dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    Console.WriteLine(dr["toAddress"].ToString());
                }
                Console.WriteLine("---------------");
                dr.Dispose();
                connection.Close();
            }

目的是达到了,想请问下有没有更好的写法
是两个连接的表 根据第一个select 的查询 得到的结果的ID去找第二个查询的结果

作者: bios8086   发布时间: 2011-12-11

如果真的“目的是达到了”,那么其实没有必要去找什么“更好的写法”。除非你想出了更好的测试用例,你能自己提出更加具体的问题,找出这个代码的问题,也就是打破自己“目的是达到了”这种自满,这个时候才值得花费时间重构代码。

作者: sp1234   发布时间: 2011-12-11

相关阅读 更多