var m = new MailMessage();

            m.From = new MailAddress("xx");

 

            m.To.Add(new MailAddress("xx"));

            m.Attachments.Add(new Attachment(@"E:\Downloads\2.jpg"));

            m.Attachments[0].ContentId = "MyPic";

            m.Attachments[0].ContentDisposition.Inline = true;

            m.Attachments[0].NameEncoding = m.SubjectEncoding = m.BodyEncoding = Encoding.UTF8;

           //添加多个附件

     m.Attachments.Add(new Attachment(@"E:\Downloads\dd.xls"));

            m.Attachments[0].ContentId = "MyPics";

            m.Attachments[0].ContentDisposition.Inline = true;

            m.Attachments[0].NameEncoding = m.SubjectEncoding = m.BodyEncoding = Encoding.UTF8;

            m.Subject = "测试";

            m.IsBodyHtml = true;

            m.Body = string.Format(@"<img src=""{0}""/><a href=""{0}"" target=""_blank"">点击新窗口</a>", "cid:" + m.Attachments[0].ContentId);

            var s = new SmtpClient();

            s.EnableSsl = true;

            s.Port = 587;

            s.Host = "smtp.gmail.com";

            s.UseDefaultCredentials = false;

            s.Credentials = new System.Net.NetworkCredential("xx", "xx");

            s.Send(m);

 

posted @ 2009-05-11 14:41 思然 阅读(124) 评论(0) 编辑

 XmlDocument source = new XmlDocument();

个人用的最多就是这个方法

source.SelectSingleNode(“//IPAddres”);

但需要注意的是如果XML有命名空间的话 是读取不到的

<?xml version="1.0" encoding="UTF-8"?>
<ProjectsConfig xmlns="http://maxcontrol.com/maxprojectsconfig">
这时需要这样
XmlNamespaceManager man = new XmlNamespaceManager(source.NameTable);
            man.AddNamespace("xx",http://maxcontrol.com/maxprojectsconfig);
XmlNode xn = source.SelectSingleNode("//xx:IPAddres", man);
posted @ 2009-03-23 11:07 思然 阅读(256) 评论(0) 编辑

因为公司需求 研究微软的Reportviewer 因为有许多特别要求所以动态调用 比较灵活

我的需求是 根据数据不同的合并表头 (参考了随心所欲的博客文档 再次表示感谢)


 string cCount = "";
    
string dCount = "";
    
string jCount = "";
    
    
protected void Page_Load(object sender, EventArgs e)
    {
        
if (!IsPostBack)
        {
            
string id = Request.QueryString["OrderID"== null ? "1" : Request.QueryString["OrderID"].ToString();
            SqlConnection con 
= new SqlConnection("server=CHENZQ;uid=sa;pwd=luca623;database=luca");
            SqlDataAdapter sda 
= new SqlDataAdapter("select * from view_Order where C_orderID='" + id + "'", con);
            DataSet ds 
= new DataSet();
            sda.Fill(ds);
            
            cCount 
= ds.Tables[0].Rows[0]["C_CTime"].ToString();
            dCount 
= ds.Tables[0].Rows[0]["C_TTime"].ToString();
            jCount 
= ds.Tables[0].Rows[0]["C_DTime"].ToString();

           //这段代码是最重要
            ReportViewer1.Reset();

            
this.ReportViewer1.LocalReport.LoadReportDefinition(GenerateRdlc());
            ReportViewer1.LocalReport.DataSources.Clear();
          //Orders_DataTable1 数据源名字必须和此报表原绑定的数据源名相同
            
this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("Orders_DataTable1", ds.Tables[0]));

            
this.ReportViewer1.LocalReport.Refresh();
        }
      
    }
   //这个方法就是自定义报表的样式
    
public MemoryStream GenerateRdlc()
    {
        XmlDocument sourceDoc 
= new XmlDocument();


        
string path = AppDomain.CurrentDomain.BaseDirectory + "Orders.rdlc";
        
//c_CTime = ds.Tables[0].Rows[0]["C_CTime"].ToString();

      

        sourceDoc.Load(path);
        //下面就是xml操作了 没必要看我的 根据自己的需求而做
        XmlNode xHeader 
= sourceDoc.ChildNodes.Item(1).ChildNodes.Item(13).ChildNodes.Item(1).ChildNodes.Item(0).ChildNodes.Item(4);
        XmlNode xCells 
= xHeader.ChildNodes.Item(0).ChildNodes.Item(0).ChildNodes.Item(0);
       

        
//建设期
        XmlNode xmlCell = xCells.ChildNodes.Item(1);
        XmlElement xeCol 
= sourceDoc.CreateElement("ColSpan");
        xeCol.InnerText 
= cCount;
        xeCol.InnerXml 
= cCount;
        xmlCell.InnerXml 
+= xeCol.OuterXml;
        XmlNode xmlCellValue 
= xmlCell.ChildNodes.Item(0).ChildNodes.Item(0).ChildNodes.Item(4);
        xmlCellValue.InnerXml 
= "建设期";
        xmlCellValue.InnerText 
= "建设期";
        XmlNode xnRemove;
        
for (int i = 0; i <int.Parse(cCount) - 1; i++)
        {

            xnRemove 
= xCells.ChildNodes.Item(2);
            xCells.RemoveChild(xnRemove);
        }
        
//投产期
        XmlNode xmlCellT = xCells.ChildNodes.Item(2);
        XmlElement xeColT 
= sourceDoc.CreateElement("ColSpan");
        xeColT.InnerText 
= dCount;
        xeColT.InnerXml 
= dCount;
        xmlCellT.InnerXml 
+= xeColT.OuterXml;

        XmlNode xmlCellValueT 
= xmlCellT.ChildNodes.Item(0).ChildNodes.Item(0).ChildNodes.Item(4);
        xmlCellValueT.InnerXml 
= "投产期";
        xmlCellValueT.InnerText 
= "投产期";
        
for (int j = 0; j < int.Parse(dCount) - 1; j++)
        {

            xnRemove 
= xCells.ChildNodes.Item(3);
            xCells.RemoveChild(xnRemove);

        }
        
//生产期
        XmlNode xmlCellC = xCells.ChildNodes.Item(3);
        XmlElement xeColC 
= sourceDoc.CreateElement("ColSpan");
        xeColC.InnerText 
= jCount.ToString();
        xeColC.InnerXml 
= jCount.ToString();
        xmlCellC.InnerXml 
+= xeColC.OuterXml;

        XmlNode xmlCellValueC 
= xmlCellC.ChildNodes.Item(0).ChildNodes.Item(0).ChildNodes.Item(4);
        xmlCellValueC.InnerXml 
= "生产期";
        xmlCellValueC.InnerText 
= "生产期";
        
for (int j = 0; j < int.Parse(jCount) - 1; j++)
        {
            xnRemove 
= xCells.ChildNodes.Item(4);
            xCells.RemoveChild(xnRemove);
        }
        MemoryStream ms 
= new MemoryStream();
        XmlSerializer serializer 
= new XmlSerializer(typeof(XmlDocument));
        serializer.Serialize(ms, sourceDoc);
        ms.Position 
= 0;
        
return ms;



    }
技巧 可以先在报表里自己设计好需要的格式 用 

XmlDocument sourceDoc = new XmlDocument();

        string path = AppDomain.CurrentDomain.BaseDirectory + "Orders.rdlc";

然后用sourceDoc .save()保存生成xml 

可以看到此xml你需要改的格式是哪个地方

posted @ 2009-03-18 10:19 思然 阅读(4430) 评论(3) 编辑

   Image img = Image.FromFile(@"D:\video\zz\Images\1.jpg");

           Bitmap bit = new Bitmap(300,300);

           Graphics g = Graphics.FromImage(bit);

           g.DrawImage(img, 0, 0, 300, 300);

           bit.Save(@"D:\video\zz\Images\1ss.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

           g.Dispose();

           bit.Dispose();

posted @ 2008-11-19 15:31 思然 阅读(37) 评论(0) 编辑

绑定数据时

用html的图片控件不支持虚拟路径用ResolveUrl方法

Eval绑定数据支持格式化数据

 <img id="img1" src="<%#ResolveUrl(Eval("Name","~/UpLoadImages/{0}")) %>"  style="width:200px;height:200px" /> 

如果是Eval数据并且调用客户端方法,应为单引双引符号过多,建议用Html img控件代替服务器端控件

<img id="img1" src="<%#ResolveUrl(FormatImagePath(Eval("Name"))) %>"  style="width:200px;height:200px" onclick="javascript:openImage('<%#ResolveUrl(FormatImagePath(Eval("Name"))) %>')"/>

在GridView控件等数据控件中用模板放了子空件,js中直接可以找到Html控件

posted @ 2008-09-11 12:09 思然 阅读(122) 评论(0) 编辑
摘要: 支持图片批量上传修改删除用ajax技术[代码][代码]阅读全文
posted @ 2008-09-11 11:51 思然 阅读(472) 评论(1) 编辑
摘要: SQl Server 2005ExPress 分服务器端数据库和本地数据库,建立本地数据库只需在Visual 2005中添加DataBase webcofig 配置如下<connectionStrings> <add name="luca" connectionString="server=.\SQLExpress;AttachDbFilename=|DataDirectory|...阅读全文
posted @ 2008-07-17 16:12 思然 阅读(121) 评论(0) 编辑
摘要: 如果当你的项目过大时,选择普通的调试速度会很慢,我们就可以尝试附加到进程的调试 ,首先还是像平时一样选择好断点,然后直接运行浏览需要测试的页面如果,然后在vs2005里面选择工具附加到进程 操作系统 宿主进程 ASP.NET 进程名称 Windows Server 2003 IIS 6.0 w3wp.exe Windows XP IIS 5.1 aspnet_wp.exe Windows 2000...阅读全文
posted @ 2008-07-15 10:00 思然 阅读(701) 评论(0) 编辑
摘要: 我们首先分析一下如何制作:li是固定的宽度与高度(单元格),设置li在ul中浮动,当ul不够宽的时候,li就会自动另起一行排列(一行有多少列通过计算即可得到ul的宽度,如一行四列,一列宽100px,那ul宽就是400px加上一定的边距)。这样就实现了类似于表格的效果,或者说我们用UL+LI模拟了表格的效果。我们开始HTML代码的编写:Example Source Code [www.52css.c...阅读全文
posted @ 2008-07-08 09:34 思然 阅读(1512) 评论(0) 编辑
摘要: 用户控件的一些注意的地方 用户控件最好放在一个文件夹中便于管理而且如果在Web.Config中全局注册某用户控件的话,是不允许和使用的页面在同一目录下用户控件最好具有一定的扩展性和重载性所以一般我们需要为某用户控件赋于一些属性或者事件下面是一个简单的例子public partial class TabStrip : System.Web.UI.UserControl{ public event E...阅读全文
posted @ 2008-07-01 11:54 思然 阅读(1423) 评论(1) 编辑