ShortcutNewMessage.aspx.cs
上传用户:tree100901
上传日期:2007-06-03
资源大小:2295k
文件大小:8k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.IO;
  9. using System.Web.SessionState;
  10. using System.Web.UI;
  11. using System.Web.UI.WebControls;
  12. using System.Web.UI.HtmlControls;
  13. namespace OA
  14. {
  15. /// <summary>
  16. /// ShortcutNewMessage 的摘要说明。
  17. /// </summary>
  18. public class ShortcutNewMessage : System.Web.UI.Page
  19. {
  20. protected System.Data.SqlClient.SqlConnection MyConnection;
  21. protected System.Web.UI.WebControls.TextBox Accepter;
  22. protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
  23. protected System.Web.UI.HtmlControls.HtmlInputFile Attachment;
  24. protected System.Web.UI.HtmlControls.HtmlInputButton Send;
  25. protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
  26. protected FreeTextBoxControls.FreeTextBox Contents;
  27. protected System.Data.SqlClient.SqlCommand MyCommand;
  28. private void Page_Load(object sender, System.EventArgs e)
  29. {
  30. if(Request.QueryString["Accepter"]!=null)
  31. Accepter.Text = Request.QueryString["Accepter"].ToString();           
  32. // 在此处放置用户代码以初始化页面
  33. }
  34. private void Send_ServerClick(object sender, System.EventArgs e)
  35. {
  36. string filename = "";
  37. string filenamen = "";
  38. MyConnection=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
  39. SqlCommand MyCommand0 = new SqlCommand("PersonID",MyConnection);
  40. MyCommand0.CommandType = CommandType.StoredProcedure;
  41. MyCommand0.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 50));
  42. MyCommand0.Parameters["@Name"].Value = User.Identity.Name;
  43. MyConnection.Open();
  44. SqlDataReader myReader =  MyCommand0.ExecuteReader(CommandBehavior.CloseConnection);
  45. string PID="";
  46. try
  47. {
  48. while(myReader.Read()) 
  49. {
  50. PID = myReader.GetInt32(0).ToString();
  51. }
  52. myReader.Close();
  53. }
  54. finally 
  55. {
  56. }
  57. string[] myData = Accepter.Text.Trim().Replace(",,",",").Split(new Char [] {','});
  58. string AccepterSec = "";
  59. string Sumac ="";
  60. string [] str = RemoveDup(myData);
  61. for(int i = 0; i<str.Length; i++)
  62. {
  63. SqlCommand MyCommand1 = new SqlCommand("PersonID",MyConnection);
  64. MyCommand1.CommandType = CommandType.StoredProcedure;
  65. MyCommand1.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 50));
  66. MyCommand1.Parameters["@Name"].Value = str[i];
  67. if(MyConnection.State.ToString()=="Closed")
  68. MyConnection.Open();  
  69. SqlDataReader myReader1 =  MyCommand1.ExecuteReader();
  70. while(myReader1.Read()) 
  71. {
  72. AccepterSec = myReader1.GetInt32(0).ToString();
  73. }
  74. myReader1.Close();
  75. if(AccepterSec.Trim()!="")
  76. {
  77. Sumac += ","+AccepterSec;
  78. }
  79. }
  80. if(Sumac!="")
  81. {
  82. MyCommand=new SqlCommand("InsertMessage",MyConnection);
  83. MyCommand.CommandType = CommandType.StoredProcedure;
  84. if (Attachment.PostedFile != null)
  85. filename=Path.GetFileName(Attachment.PostedFile.FileName).Trim();
  86. int j = 0;
  87. filenamen=filename;
  88. if(File.Exists(Server.MapPath("MessageAttachment\"+filenamen)))
  89. {
  90. filenamen = filename.Replace(".","("+j.ToString()+").");
  91. if(File.Exists(Server.MapPath("MessageAttachment\"+filenamen)))
  92. {
  93. int lastLocation = filename.LastIndexOf( "." );
  94. string[] dirs = Directory.GetFiles(Server.MapPath("MessageAttachment\"), ""+filename.Substring(0,lastLocation)+"(*");
  95. for(int l = 0; l<dirs.Length+1; l++)
  96. {
  97. string strf = filenamen.Replace("("+j.ToString()+").","("+l.ToString()+").");
  98. if(!File.Exists(Server.MapPath("MessageAttachment\"+strf)))
  99. filenamen = strf;
  100. }
  101. }
  102. }
  103. if(filenamen.Trim()!="")
  104. Attachment.PostedFile.SaveAs(Server.MapPath("MessageAttachment\"+filenamen));
  105. MyCommand.Parameters.Add(new SqlParameter("@Attachment", SqlDbType.NVarChar, 50));
  106. MyCommand.Parameters["@Attachment"].Value = filenamen;  
  107. MyCommand.Parameters.Add(new SqlParameter("@Contents",SqlDbType.NVarChar, 1000));
  108. MyCommand.Parameters["@Contents"].Value = Contents.Text;
  109. MyCommand.Parameters.Add(new SqlParameter("@PersonID",SqlDbType.Int, 4));
  110. MyCommand.Parameters["@PersonID"].Value = PID; 
  111. MyCommand.Parameters.Add(new SqlParameter("@AccepterID", SqlDbType.NVarChar, 120));
  112. MyCommand.Parameters["@AccepterID"].Value = "("+Sumac.Substring(1).Replace(",", "),(")+")";   
  113. MyCommand.Parameters.Add(new SqlParameter("@State",SqlDbType.Int, 4));
  114. MyCommand.Parameters["@State"].Value = "0";
  115. try
  116. {
  117. MyCommand.ExecuteNonQuery();
  118. }
  119. catch
  120. {
  121. }
  122. MyConnection.Close(); 
  123. }
  124. for(int i = 0; i<str.Length; i++)
  125. {
  126. SqlCommand MyCommand1 = new SqlCommand("PersonID",MyConnection);
  127. MyCommand1.CommandType = CommandType.StoredProcedure;
  128. MyCommand1.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 50));
  129. MyCommand1.Parameters["@Name"].Value = str[i];
  130. if(MyConnection.State.ToString()=="Closed")
  131. MyConnection.Open();  
  132. SqlDataReader myReader1 =  MyCommand1.ExecuteReader();
  133. while(myReader1.Read()) 
  134. {
  135. AccepterSec = myReader1.GetInt32(0).ToString();
  136. }
  137. myReader1.Close();
  138. if(AccepterSec.Trim()!="")
  139. {
  140. MyCommand=new SqlCommand("InsertMessage",MyConnection);
  141. MyCommand.CommandType = CommandType.StoredProcedure;
  142. int j = 0;
  143. if(File.Exists(Server.MapPath("MessageAttachment\"+filenamen)))
  144. {
  145. filenamen = filename.Replace(".","("+j.ToString()+").");
  146. if(File.Exists(Server.MapPath("MessageAttachment\"+filenamen)))
  147. {
  148. int lastLocation = filename.LastIndexOf( "." );
  149. string[] dirs = Directory.GetFiles(Server.MapPath("MessageAttachment\"), ""+filename.Substring(0,lastLocation)+"(*");
  150. for(int l = 0; l<dirs.Length+1; l++)
  151. {
  152. string strf = filenamen.Replace("("+j.ToString()+").","("+l.ToString()+").");
  153. if(!File.Exists(Server.MapPath("MessageAttachment\"+strf)))
  154. filenamen = strf;
  155. }
  156. }
  157. }
  158. if(filenamen.Trim()!="")
  159. Attachment.PostedFile.SaveAs(Server.MapPath("MessageAttachment\"+filenamen));
  160. MyCommand.Parameters.Add(new SqlParameter("@Attachment", SqlDbType.NVarChar, 50));
  161. MyCommand.Parameters["@Attachment"].Value = filenamen; 
  162. MyCommand.Parameters.Add(new SqlParameter("@Contents",SqlDbType.NVarChar, 1000));
  163. MyCommand.Parameters["@Contents"].Value = Contents.Text;
  164. MyCommand.Parameters.Add(new SqlParameter("@PersonID",SqlDbType.Int, 4));
  165. MyCommand.Parameters["@PersonID"].Value = PID; 
  166. MyCommand.Parameters.Add(new SqlParameter("@AccepterID", SqlDbType.NVarChar, 120));
  167. MyCommand.Parameters["@AccepterID"].Value = AccepterSec;   
  168. MyCommand.Parameters.Add(new SqlParameter("@State",SqlDbType.Int, 4));
  169. MyCommand.Parameters["@State"].Value = "0";
  170. try
  171. {
  172. MyCommand.ExecuteNonQuery();
  173. RegisterStartupScript("alert","<script>alert('给"+str[i]+"的信息发送成功!');window.close();</script>");
  174. }
  175. catch
  176. {
  177. RegisterStartupScript("alert","<script>alert('你填写的对象"+str[i]+"不存在!')</script>");
  178. }
  179. }
  180. }
  181. Accepter.Text="";
  182. Contents.Text="";
  183. }
  184. public static string[] RemoveDup(string[] myData)
  185. {
  186. if (myData.Length > 0)
  187. {
  188. Array.Sort(myData);
  189. int size = 1;
  190. for (int i=1; i<myData.Length; i++)
  191. if (myData[i] != myData[i-1])
  192. size++;
  193. string[] myTempData = new string[size];
  194. int j=0;
  195. myTempData[j++] = myData[0];
  196. for (int i=1; i<myData.Length; i++)
  197. if (myData[i] != myData[i-1])
  198. myTempData[j++] = myData[i];
  199. return myTempData;
  200. }
  201. return myData; 
  202. }
  203. #region Web 窗体设计器生成的代码
  204. override protected void OnInit(EventArgs e)
  205. {
  206. //
  207. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  208. //
  209. InitializeComponent();
  210. base.OnInit(e);
  211. }
  212. /// <summary>
  213. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  214. /// 此方法的内容。
  215. /// </summary>
  216. private void InitializeComponent()
  217. {    
  218. this.Send.ServerClick += new System.EventHandler(this.Send_ServerClick);
  219. this.Load += new System.EventHandler(this.Page_Load);
  220. }
  221. #endregion
  222. }
  223. }