FileRight.cs
上传用户:autodoor
上传日期:2022-08-04
资源大小:9973k
文件大小:10k
源码类别:

.net编程

开发平台:

Others

  1. using System;
  2. using System.ComponentModel;
  3. using System.Data;
  4. using System.Data.SqlClient;
  5. using System.Text;
  6. using qminoa.Common; 
  7. namespace qminoa.DA
  8. {
  9. //该类用于处理文件管理的权限问题
  10. public class FileRight:IDisposable
  11. {
  12. private SqlDataAdapter dsCommand;
  13. public SqlConnection mySqlConnection;
  14. public static  string CONN;
  15. public FileRight()
  16. {
  17. CONN=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
  18. mySqlConnection = new SqlConnection(CONN);
  19. }
  20. public void Dispose()
  21. {
  22. Dispose(true);
  23. GC.SuppressFinalize(true);
  24. }
  25. protected virtual void Dispose(bool disposing)
  26. {
  27. if (! disposing)
  28. return; 
  29. if (dsCommand != null)
  30. {
  31. if(dsCommand.SelectCommand != null)
  32. {    
  33. if( dsCommand.SelectCommand.Connection != null )
  34. dsCommand.SelectCommand.Connection.Dispose();
  35. dsCommand.SelectCommand.Dispose();
  36. }    
  37. dsCommand.Dispose();
  38. dsCommand = null;
  39. }
  40. }
  41. //获得文件的访问权限
  42. public FileData GetDocCtr(int docid,int empid,int opt)
  43. {
  44. mySqlConnection.Open();
  45. dsCommand = new SqlDataAdapter();
  46. dsCommand.SelectCommand =  mySqlConnection.CreateCommand();
  47. dsCommand.SelectCommand.CommandText="fmGetDocRight";  
  48. dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure; 
  49. SqlParameterCollection sqlParams = dsCommand.SelectCommand.Parameters;
  50. sqlParams.Add(new SqlParameter("@docid", SqlDbType.Int)); 
  51. sqlParams["@docid"].Value=docid;
  52. sqlParams.Add(new SqlParameter("@empid", SqlDbType.Int)); 
  53. sqlParams["@empid"].Value=empid;
  54. sqlParams.Add(new SqlParameter("@opt", SqlDbType.Int)); 
  55. sqlParams["@opt"].Value=opt;
  56. dsCommand.SelectCommand.ExecuteNonQuery();
  57. FileData data = new FileData();
  58. //填充FileData数据集
  59. dsCommand.Fill(data,FileData.FMDOCFOLDERCTR_TABLE);
  60. int count=data.Tables[FileData.FMDOCFOLDERCTR_TABLE].DefaultView.Count;   
  61. mySqlConnection.Close(); 
  62. return data; 
  63. }
  64. //获取文件夹访问权限
  65. public FileData GetDocFolderCtr(int folderid,int empid,int opt)
  66. {
  67. mySqlConnection.Open();
  68. dsCommand = new SqlDataAdapter();
  69. dsCommand.SelectCommand =  mySqlConnection.CreateCommand();
  70. dsCommand.SelectCommand.CommandText="fmGetDocFolderCtr";  
  71. dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure; 
  72. SqlParameterCollection sqlParams = dsCommand.SelectCommand.Parameters;
  73. sqlParams.Add(new SqlParameter("@folderid", SqlDbType.Int)); 
  74. sqlParams["@folderid"].Value=folderid;
  75. sqlParams.Add(new SqlParameter("@empid", SqlDbType.Int)); 
  76. sqlParams["@empid"].Value=empid;
  77. sqlParams.Add(new SqlParameter("@opt", SqlDbType.Int)); 
  78. sqlParams["@opt"].Value=opt;
  79. dsCommand.SelectCommand.ExecuteNonQuery();
  80. FileData data = new FileData();
  81. dsCommand.Fill(data,FileData.FMDOCFOLDERCTR_TABLE);
  82. int count=data.Tables[FileData.FMDOCFOLDERCTR_TABLE].DefaultView.Count;   
  83. mySqlConnection.Close(); 
  84. return data; 
  85. }
  86. //得到部门名称
  87. public DataSet GetAllUnitName()
  88. {
  89. dsCommand = new SqlDataAdapter("fmGetmrDepartment",CONN);
  90. if (dsCommand == null )
  91. {
  92. throw new System.ObjectDisposedException( GetType().FullName );
  93. }        
  94. DataSet  data    = new DataSet();
  95. SqlCommand command = dsCommand.SelectCommand;
  96. command.CommandText ="fmGetmrDepartment";
  97. command.CommandType = CommandType.StoredProcedure;
  98. dsCommand.Fill(data,"unitname");
  99. return data;
  100. }
  101. //得到各个部门的用户
  102. public DataSet  GetUser(int Depid,int opt)
  103. {
  104. dsCommand = new SqlDataAdapter("fmGetUser",CONN);
  105. if (dsCommand == null )
  106. {
  107. throw new System.ObjectDisposedException( GetType().FullName );
  108. }        
  109. DataSet  data    = new DataSet();
  110. SqlCommand command = dsCommand.SelectCommand;
  111. command.CommandText ="fmGetUser";
  112. command.CommandType = CommandType.StoredProcedure;
  113. SqlParameter param1 = new SqlParameter("@depid", SqlDbType.Int);
  114. param1.Value = Depid;
  115. command.Parameters.Add(param1); 
  116. SqlParameter param2 = new SqlParameter("@opt", SqlDbType.Int);
  117. param2.Value = opt;
  118. command.Parameters.Add(param2); 
  119. dsCommand.Fill(data,"unitname");
  120. return data;
  121. }
  122. //利用存储过程将数据集中的内容保存到数据库中
  123. public void SaveDocFolderRight(FileData dataset,int type)
  124. {
  125. mySqlConnection.Open(); 
  126. SqlCommand command = mySqlConnection.CreateCommand();
  127. command.CommandText ="fmSaveDocFolderRight"; 
  128. command.CommandType =CommandType.StoredProcedure; 
  129. DataTable data =dataset.Tables[FileData.FMDOCFOLDERCTR_TABLE]; 
  130. int num=data.Rows.Count;
  131. SqlParameter param0 = new SqlParameter("@type" ,SqlDbType.Int);
  132. param0.Value =type;
  133. command.Parameters.Add(param0);
  134. SqlParameter param1 = new SqlParameter("@Conid" ,SqlDbType.Int);
  135. param1.Value =Convert.ToInt32(data.Rows[0][0]);
  136. command.Parameters.Add(param1);
  137. SqlParameter param2 = new SqlParameter("@folderid" ,SqlDbType.Int);
  138. param2.Value =Convert.ToInt32(data.Rows[0][1]);
  139. command.Parameters.Add(param2);
  140. SqlParameter param3 = new SqlParameter("@depid" ,SqlDbType.Int);
  141. param3.Value =Convert.ToInt32(data.Rows[0][2]);
  142. command.Parameters.Add(param3);
  143. SqlParameter param4 = new SqlParameter("@empid" ,SqlDbType.Int);
  144. param4.Value =Convert.ToInt32(data.Rows[0][3]);
  145. command.Parameters.Add(param4);
  146. SqlParameter param5 = new SqlParameter("@adminflag" ,SqlDbType.Bit,2);
  147. param5.Value =Convert.ToByte(data.Rows[0][4]);
  148. command.Parameters.Add(param5);
  149. SqlParameter param6 = new SqlParameter("@readflag" ,SqlDbType.Bit,2);
  150. param6.Value =Convert.ToByte(data.Rows[0][5]);
  151. command.Parameters.Add(param6);
  152. SqlParameter param7 = new SqlParameter("@writeflag" ,SqlDbType.Bit,2);
  153. param7.Value =Convert.ToByte(data.Rows[0][6]);
  154. command.Parameters.Add(param7);
  155. command.ExecuteNonQuery();
  156. mySqlConnection.Close(); 
  157. }
  158. //利用存储过程将数据集中的内容保存到数据库中
  159. public void SaveDocRight(FileData dataset,int type)
  160. {
  161. mySqlConnection.Open(); 
  162. SqlCommand command = mySqlConnection.CreateCommand();
  163. command.CommandText ="fmSaveDocRight"; 
  164. command.CommandType =CommandType.StoredProcedure; 
  165. DataTable data =dataset.Tables[FileData.FMDOCFOLDERCTR_TABLE]; 
  166. int num=data.Rows.Count;
  167. SqlParameter param0 = new SqlParameter("@type" ,SqlDbType.Int);
  168. param0.Value =type;
  169. command.Parameters.Add(param0);
  170. SqlParameter param1 = new SqlParameter("@Conid" ,SqlDbType.Int);
  171. param1.Value =Convert.ToInt32(data.Rows[0][0]);
  172. command.Parameters.Add(param1);
  173. SqlParameter param2 = new SqlParameter("@docid" ,SqlDbType.Int);
  174. param2.Value =Convert.ToInt32(data.Rows[0][1]);
  175. command.Parameters.Add(param2);
  176. SqlParameter param3 = new SqlParameter("@depid" ,SqlDbType.Int);
  177. param3.Value =Convert.ToInt32(data.Rows[0][2]);
  178. command.Parameters.Add(param3);
  179. SqlParameter param4 = new SqlParameter("@empid" ,SqlDbType.Int);
  180. param4.Value =Convert.ToInt32(data.Rows[0][3]);
  181. command.Parameters.Add(param4);
  182. SqlParameter param5 = new SqlParameter("@adminflag" ,SqlDbType.Bit,2);
  183. param5.Value =Convert.ToByte(data.Rows[0][4]);
  184. command.Parameters.Add(param5);
  185. SqlParameter param6 = new SqlParameter("@readflag" ,SqlDbType.Bit,2);
  186. param6.Value =Convert.ToByte(data.Rows[0][5]);
  187. command.Parameters.Add(param6);
  188. SqlParameter param7 = new SqlParameter("@writeflag" ,SqlDbType.Bit,2);
  189. param7.Value =Convert.ToByte(data.Rows[0][6]);
  190. command.Parameters.Add(param7);
  191. command.ExecuteNonQuery();
  192. mySqlConnection.Close(); 
  193. }
  194. public  static int  GetEmpId(string Name)
  195. {
  196. int empid=0;
  197. DataSet data=(new FileRight()).GetUser(0,1); 
  198. //这里就用到了opt参数,opt!=0时取出所有人员的信息
  199. DataView dvdata=data.Tables[0].DefaultView;
  200. dvdata.RowFilter="EmpName='"+Name+"'";
  201. int num=dvdata.Count;
  202. if(num!=0)
  203. {
  204. empid=Convert.ToInt32(dvdata[0].Row[0].ToString(),10);  
  205. }
  206. else
  207. {
  208. //数据库中没有这个人
  209. }
  210. return empid;
  211. }
  212. public static int Right_GetFolderId(int pkid)
  213. {
  214. SqlDataAdapter dsCommand = new SqlDataAdapter("select * from fmDocFolderCtr",CONN);
  215. dsCommand.SelectCommand.CommandType=CommandType.Text;   
  216. DataSet data = new DataSet();;
  217. dsCommand.Fill(data);
  218. DataView dvdata=data.Tables[0].DefaultView;  
  219. dvdata.RowFilter="FolderConId="+pkid; 
  220. int folderid=Convert.ToInt32(dvdata[0].Row[1].ToString(),10);
  221. return folderid;
  222. }
  223. public static int Right_GetDocFolderId(int pkid)
  224. {  
  225. SqlDataAdapter dsCommand = new SqlDataAdapter("select * from fmDocCtr",CONN);
  226. dsCommand.SelectCommand.CommandType=CommandType.Text;   
  227. DataSet data = new DataSet();;
  228. dsCommand.Fill(data);
  229. DataView dvdata=data.Tables[0].DefaultView;  
  230. dvdata.RowFilter="ConId="+pkid; 
  231. int folderid=Convert.ToInt32(dvdata[0].Row[1].ToString(),10);
  232. return folderid;
  233. }
  234. public int GetDepId(string DepName)
  235. {
  236. dsCommand = new SqlDataAdapter("fmGetmrDepartment",CONN);
  237. dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure;   
  238. DataTable data = new DataTable();
  239. dsCommand.Fill(data);
  240. int depid;
  241. DataView dv=data.DefaultView; 
  242. dv.RowFilter="DepName='"+DepName+"'";
  243. depid=Convert.ToInt32(dv[0].Row[0].ToString());  
  244. return depid;
  245. }
  246. public int GetDepId(int Empid)
  247. {
  248. int depid;   
  249. DataSet data=(new FileRight()).GetUser(0,1);    
  250. DataView dvdata=data.Tables[0].DefaultView;
  251. dvdata.RowFilter="Empid="+Empid;
  252. depid=Convert.ToInt32(dvdata[0].Row[2].ToString(),10);  
  253. return depid;
  254. }
  255. }
  256. }