鄂尔多斯-招源科技

T_Form_EntityInfo.cs 32KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data.SqlClient;
  6. using System.Data;
  7. using CallCenterApi.DB;
  8. namespace CallCenterApi.DAL
  9. {
  10. /// <summary>
  11. /// 数据访问类:T_Form_EntityInfo
  12. /// </summary>
  13. public partial class T_Form_EntityInfo
  14. {
  15. public T_Form_EntityInfo()
  16. { }
  17. #region Method
  18. /// <summary>
  19. /// 是否存在该记录
  20. /// </summary>
  21. public bool Exists(int F_EntityId)
  22. {
  23. StringBuilder strSql = new StringBuilder();
  24. strSql.Append("select count(1) from T_Form_EntityInfo");
  25. strSql.Append(" where F_EntityId=@F_EntityId");
  26. SqlParameter[] parameters = {
  27. new SqlParameter("@F_EntityId", SqlDbType.Int,4)
  28. };
  29. parameters[0].Value = F_EntityId;
  30. return DbHelperSQL.Exists(strSql.ToString(), parameters);
  31. }
  32. /// <summary>
  33. /// 增加一条数据
  34. /// </summary>
  35. public int Add(Model.T_Form_EntityInfo model)
  36. {
  37. StringBuilder strSql = new StringBuilder();
  38. strSql.Append("insert into T_Form_EntityInfo(");
  39. strSql.Append("F_Name,F_DBTableName,F_IsActivity,F_Des,F_LinkTableName,F_LinkFieldName,F_CreateSQL,F_CreateOn,F_ModifySQL,F_LastModifyOn)");
  40. strSql.Append(" values (");
  41. strSql.Append("@F_Name,@F_DBTableName,@F_IsActivity,@F_Des,@F_LinkTableName,@F_LinkFieldName,@F_CreateSQL,@F_CreateOn,@F_ModifySQL,@F_LastModifyOn)");
  42. strSql.Append(";select @@IDENTITY");
  43. SqlParameter[] parameters = {
  44. new SqlParameter("@F_Name", SqlDbType.NVarChar,64),
  45. new SqlParameter("@F_DBTableName", SqlDbType.NVarChar,64),
  46. new SqlParameter("@F_IsActivity", SqlDbType.SmallInt,2),
  47. new SqlParameter("@F_Des", SqlDbType.NVarChar,800),
  48. new SqlParameter("@F_LinkTableName", SqlDbType.NVarChar,50),
  49. new SqlParameter("@F_LinkFieldName", SqlDbType.NVarChar,50),
  50. new SqlParameter("@F_CreateSQL", SqlDbType.Text),
  51. new SqlParameter("@F_CreateOn", SqlDbType.DateTime),
  52. new SqlParameter("@F_ModifySQL", SqlDbType.Text),
  53. new SqlParameter("@F_LastModifyOn", SqlDbType.DateTime)};
  54. parameters[0].Value = model.F_Name;
  55. parameters[1].Value = model.F_DBTableName;
  56. parameters[2].Value = model.F_IsActivity;
  57. parameters[3].Value = model.F_Des;
  58. parameters[4].Value = model.F_LinkTableName;
  59. parameters[5].Value = model.F_LinkFieldName;
  60. parameters[6].Value = model.F_CreateSQL;
  61. parameters[7].Value = model.F_CreateOn;
  62. parameters[8].Value = model.F_ModifySQL;
  63. parameters[9].Value = model.F_LastModifyOn;
  64. object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
  65. if (obj == null)
  66. {
  67. return 0;
  68. }
  69. else
  70. {
  71. return Convert.ToInt32(obj);
  72. }
  73. }
  74. /// <summary>
  75. /// 更新一条数据
  76. /// </summary>
  77. public bool Update(Model.T_Form_EntityInfo model)
  78. {
  79. StringBuilder strSql = new StringBuilder();
  80. strSql.Append("update T_Form_EntityInfo set ");
  81. strSql.Append("F_Name=@F_Name,");
  82. strSql.Append("F_DBTableName=@F_DBTableName,");
  83. strSql.Append("F_IsActivity=@F_IsActivity,");
  84. strSql.Append("F_Des=@F_Des,");
  85. strSql.Append("F_LinkTableName=@F_LinkTableName,");
  86. strSql.Append("F_LinkFieldName=@F_LinkFieldName,");
  87. strSql.Append("F_CreateSQL=@F_CreateSQL,");
  88. strSql.Append("F_CreateOn=@F_CreateOn,");
  89. strSql.Append("F_ModifySQL=@F_ModifySQL,");
  90. strSql.Append("F_LastModifyOn=@F_LastModifyOn");
  91. strSql.Append(" where F_EntityId=@F_EntityId");
  92. SqlParameter[] parameters = {
  93. new SqlParameter("@F_Name", SqlDbType.NVarChar,64),
  94. new SqlParameter("@F_DBTableName", SqlDbType.NVarChar,64),
  95. new SqlParameter("@F_IsActivity", SqlDbType.SmallInt,2),
  96. new SqlParameter("@F_Des", SqlDbType.NVarChar,800),
  97. new SqlParameter("@F_LinkTableName", SqlDbType.NVarChar,50),
  98. new SqlParameter("@F_LinkFieldName", SqlDbType.NVarChar,50),
  99. new SqlParameter("@F_CreateSQL", SqlDbType.Text),
  100. new SqlParameter("@F_CreateOn", SqlDbType.DateTime),
  101. new SqlParameter("@F_ModifySQL", SqlDbType.Text),
  102. new SqlParameter("@F_LastModifyOn", SqlDbType.DateTime),
  103. new SqlParameter("@F_EntityId", SqlDbType.Int,4)};
  104. parameters[0].Value = model.F_Name;
  105. parameters[1].Value = model.F_DBTableName;
  106. parameters[2].Value = model.F_IsActivity;
  107. parameters[3].Value = model.F_Des;
  108. parameters[4].Value = model.F_LinkTableName;
  109. parameters[5].Value = model.F_LinkFieldName;
  110. parameters[6].Value = model.F_CreateSQL;
  111. parameters[7].Value = model.F_CreateOn;
  112. parameters[8].Value = model.F_ModifySQL;
  113. parameters[9].Value = model.F_LastModifyOn;
  114. parameters[10].Value = model.F_EntityId;
  115. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
  116. if (rows > 0)
  117. {
  118. return true;
  119. }
  120. else
  121. {
  122. return false;
  123. }
  124. }
  125. /// <summary>
  126. /// 删除一条数据
  127. /// </summary>
  128. public bool Delete(int F_EntityId)
  129. {
  130. StringBuilder strSql = new StringBuilder();
  131. strSql.Append("delete from T_Form_EntityInfo ");
  132. strSql.Append(" where F_EntityId=@F_EntityId");
  133. SqlParameter[] parameters = {
  134. new SqlParameter("@F_EntityId", SqlDbType.Int,4)
  135. };
  136. parameters[0].Value = F_EntityId;
  137. int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
  138. if (rows > 0)
  139. {
  140. return true;
  141. }
  142. else
  143. {
  144. return false;
  145. }
  146. }
  147. /// <summary>
  148. /// 批量删除数据
  149. /// </summary>
  150. public bool DeleteList(string F_EntityIdlist)
  151. {
  152. StringBuilder strSql = new StringBuilder();
  153. strSql.Append("delete from T_Form_EntityInfo ");
  154. strSql.Append(" where F_EntityId in (" + F_EntityIdlist + ") ");
  155. int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
  156. if (rows > 0)
  157. {
  158. return true;
  159. }
  160. else
  161. {
  162. return false;
  163. }
  164. }
  165. /// <summary>
  166. /// 得到一个对象实体
  167. /// </summary>
  168. public Model.T_Form_EntityInfo GetModel(int F_EntityId)
  169. {
  170. StringBuilder strSql = new StringBuilder();
  171. strSql.Append("select top 1 F_EntityId,F_Name,F_DBTableName,F_IsActivity,F_Des,F_LinkTableName,F_LinkFieldName,F_CreateSQL,F_CreateOn,F_ModifySQL,F_LastModifyOn from T_Form_EntityInfo ");
  172. strSql.Append(" where F_EntityId=@F_EntityId");
  173. SqlParameter[] parameters = {
  174. new SqlParameter("@F_EntityId", SqlDbType.Int,4)
  175. };
  176. parameters[0].Value = F_EntityId;
  177. Model.T_Form_EntityInfo model = new Model.T_Form_EntityInfo();
  178. DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);
  179. if (ds.Tables[0].Rows.Count > 0)
  180. {
  181. if (ds.Tables[0].Rows[0]["F_EntityId"] != null && ds.Tables[0].Rows[0]["F_EntityId"].ToString() != "")
  182. {
  183. model.F_EntityId = int.Parse(ds.Tables[0].Rows[0]["F_EntityId"].ToString());
  184. }
  185. if (ds.Tables[0].Rows[0]["F_Name"] != null && ds.Tables[0].Rows[0]["F_Name"].ToString() != "")
  186. {
  187. model.F_Name = ds.Tables[0].Rows[0]["F_Name"].ToString();
  188. }
  189. if (ds.Tables[0].Rows[0]["F_DBTableName"] != null && ds.Tables[0].Rows[0]["F_DBTableName"].ToString() != "")
  190. {
  191. model.F_DBTableName = ds.Tables[0].Rows[0]["F_DBTableName"].ToString();
  192. }
  193. if (ds.Tables[0].Rows[0]["F_IsActivity"] != null && ds.Tables[0].Rows[0]["F_IsActivity"].ToString() != "")
  194. {
  195. model.F_IsActivity = int.Parse(ds.Tables[0].Rows[0]["F_IsActivity"].ToString());
  196. }
  197. if (ds.Tables[0].Rows[0]["F_Des"] != null && ds.Tables[0].Rows[0]["F_Des"].ToString() != "")
  198. {
  199. model.F_Des = ds.Tables[0].Rows[0]["F_Des"].ToString();
  200. }
  201. if (ds.Tables[0].Rows[0]["F_LinkTableName"] != null && ds.Tables[0].Rows[0]["F_LinkTableName"].ToString() != "")
  202. {
  203. model.F_LinkTableName = ds.Tables[0].Rows[0]["F_LinkTableName"].ToString();
  204. }
  205. if (ds.Tables[0].Rows[0]["F_LinkFieldName"] != null && ds.Tables[0].Rows[0]["F_LinkFieldName"].ToString() != "")
  206. {
  207. model.F_LinkFieldName = ds.Tables[0].Rows[0]["F_LinkFieldName"].ToString();
  208. }
  209. if (ds.Tables[0].Rows[0]["F_CreateSQL"] != null && ds.Tables[0].Rows[0]["F_CreateSQL"].ToString() != "")
  210. {
  211. model.F_CreateSQL = ds.Tables[0].Rows[0]["F_CreateSQL"].ToString();
  212. }
  213. if (ds.Tables[0].Rows[0]["F_CreateOn"] != null && ds.Tables[0].Rows[0]["F_CreateOn"].ToString() != "")
  214. {
  215. model.F_CreateOn = DateTime.Parse(ds.Tables[0].Rows[0]["F_CreateOn"].ToString());
  216. }
  217. if (ds.Tables[0].Rows[0]["F_ModifySQL"] != null && ds.Tables[0].Rows[0]["F_ModifySQL"].ToString() != "")
  218. {
  219. model.F_ModifySQL = ds.Tables[0].Rows[0]["F_ModifySQL"].ToString();
  220. }
  221. if (ds.Tables[0].Rows[0]["F_LastModifyOn"] != null && ds.Tables[0].Rows[0]["F_LastModifyOn"].ToString() != "")
  222. {
  223. model.F_LastModifyOn = DateTime.Parse(ds.Tables[0].Rows[0]["F_LastModifyOn"].ToString());
  224. }
  225. return model;
  226. }
  227. else
  228. {
  229. return null;
  230. }
  231. }
  232. /// <summary>
  233. /// 获得数据列表
  234. /// </summary>
  235. public DataSet GetList(string strWhere)
  236. {
  237. StringBuilder strSql = new StringBuilder();
  238. strSql.Append("select F_EntityId,F_Name,F_DBTableName,F_IsActivity,F_Des,F_LinkTableName,F_LinkFieldName,F_CreateSQL,F_CreateOn,F_ModifySQL,F_LastModifyOn ");
  239. strSql.Append(" FROM T_Form_EntityInfo ");
  240. if (strWhere.Trim() != "")
  241. {
  242. strSql.Append(" where " + strWhere);
  243. }
  244. return DbHelperSQL.Query(strSql.ToString());
  245. }
  246. /// <summary>
  247. /// 获得前几行数据
  248. /// </summary>
  249. public DataSet GetList(int Top, string strWhere, string filedOrder)
  250. {
  251. StringBuilder strSql = new StringBuilder();
  252. strSql.Append("select ");
  253. if (Top > 0)
  254. {
  255. strSql.Append(" top " + Top.ToString());
  256. }
  257. strSql.Append(" F_EntityId,F_Name,F_DBTableName,F_IsActivity,F_Des,F_LinkTableName,F_LinkFieldName,F_CreateSQL,F_CreateOn,F_ModifySQL,F_LastModifyOn ");
  258. strSql.Append(" FROM T_Form_EntityInfo ");
  259. if (strWhere.Trim() != "")
  260. {
  261. strSql.Append(" where " + strWhere);
  262. }
  263. strSql.Append(" order by " + filedOrder);
  264. return DbHelperSQL.Query(strSql.ToString());
  265. }
  266. /// <summary>
  267. /// 获取记录总数
  268. /// </summary>
  269. public int GetRecordCount(string strWhere)
  270. {
  271. StringBuilder strSql = new StringBuilder();
  272. strSql.Append("select count(1) FROM T_Form_EntityInfo ");
  273. if (strWhere.Trim() != "")
  274. {
  275. strSql.Append(" where " + strWhere);
  276. }
  277. object obj = DbHelperSQL.GetSingle(strSql.ToString());
  278. if (obj == null)
  279. {
  280. return 0;
  281. }
  282. else
  283. {
  284. return Convert.ToInt32(obj);
  285. }
  286. }
  287. /// <summary>
  288. /// 分页获取数据列表
  289. /// </summary>
  290. public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
  291. {
  292. StringBuilder strSql = new StringBuilder();
  293. strSql.Append("SELECT * FROM ( ");
  294. strSql.Append(" SELECT ROW_NUMBER() OVER (");
  295. if (!string.IsNullOrEmpty(orderby.Trim()))
  296. {
  297. strSql.Append("order by T." + orderby);
  298. }
  299. else
  300. {
  301. strSql.Append("order by T.F_EntityId desc");
  302. }
  303. strSql.Append(")AS Row, T.* from T_Form_EntityInfo T ");
  304. if (!string.IsNullOrEmpty(strWhere.Trim()))
  305. {
  306. strSql.Append(" WHERE " + strWhere);
  307. }
  308. strSql.Append(" ) TT");
  309. strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
  310. return DbHelperSQL.Query(strSql.ToString());
  311. }
  312. /*
  313. /// <summary>
  314. /// 分页获取数据列表
  315. /// </summary>
  316. public DataSet GetList(int PageSize,int PageIndex,string strWhere)
  317. {
  318. SqlParameter[] parameters = {
  319. new SqlParameter("@tblName", SqlDbType.VarChar, 255),
  320. new SqlParameter("@fldName", SqlDbType.VarChar, 255),
  321. new SqlParameter("@PageSize", SqlDbType.Int),
  322. new SqlParameter("@PageIndex", SqlDbType.Int),
  323. new SqlParameter("@IsReCount", SqlDbType.Bit),
  324. new SqlParameter("@OrderType", SqlDbType.Bit),
  325. new SqlParameter("@strWhere", SqlDbType.VarChar,1000),
  326. };
  327. parameters[0].Value = "T_Form_EntityInfo";
  328. parameters[1].Value = "F_EntityId";
  329. parameters[2].Value = PageSize;
  330. parameters[3].Value = PageIndex;
  331. parameters[4].Value = 0;
  332. parameters[5].Value = 0;
  333. parameters[6].Value = strWhere;
  334. return DbHelperSQL.RunProcedure("UP_GetRecordByPage",parameters,"ds");
  335. }*/
  336. #endregion Method
  337. /// <summary>
  338. /// 增加一条数据
  339. /// </summary>
  340. public int AddTran(Model.T_Form_EntityInfo model)
  341. {
  342. try
  343. {
  344. int res = -1;
  345. StringBuilder strSql = new StringBuilder();
  346. StringBuilder strFildSql = new StringBuilder();
  347. using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString))
  348. {
  349. if (conn.State.ToString() != "Open")
  350. conn.Open();
  351. ///设置隔离级别,启动数据库事务
  352. SqlTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
  353. SqlCommand cmd = new SqlCommand();
  354. try
  355. {
  356. strSql.Append("Declare @err int;declare @res int; declare @F_EntityId int;set @F_EntityId=0; set @err=0;set @res=0;");
  357. //判断系统是否存在此表
  358. strSql.Append("if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[" + model.F_DBTableName + "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)");
  359. strSql.Append("begin set @res=-2 end else begin ");
  360. #region 实体信息
  361. strSql.Append("insert into T_Form_EntityInfo(");
  362. strSql.Append("F_Name,F_DBTableName,F_IsActivity,F_Des,F_LinkTableName,F_LinkFieldName,F_CreateSQL,F_CreateOn,F_ModifySQL,F_LastModifyOn)");
  363. strSql.Append(" values (");
  364. strSql.Append("@F_Name,@F_DBTableName,@F_IsActivity,@F_Des,@F_LinkTableName,@F_LinkFieldName,@F_CreateSQL,@F_CreateOn,@F_ModifySQL,@F_LastModifyOn)");
  365. strSql.Append(";select @F_EntityId=@@IDENTITY;SELECT @err=@@ERROR;");
  366. SqlParameter[] parameters = {
  367. new SqlParameter("@F_Name", SqlDbType.NVarChar,64),
  368. new SqlParameter("@F_DBTableName", SqlDbType.NVarChar,64),
  369. new SqlParameter("@F_IsActivity", SqlDbType.SmallInt,2),
  370. new SqlParameter("@F_Des", SqlDbType.NVarChar,800),
  371. new SqlParameter("@F_LinkTableName", SqlDbType.NVarChar,50),
  372. new SqlParameter("@F_LinkFieldName", SqlDbType.NVarChar,50),
  373. new SqlParameter("@F_CreateSQL", SqlDbType.Text),
  374. new SqlParameter("@F_CreateOn", SqlDbType.DateTime),
  375. new SqlParameter("@F_ModifySQL", SqlDbType.Text),
  376. new SqlParameter("@F_LastModifyOn", SqlDbType.DateTime)};
  377. parameters[0].Value = model.F_Name;
  378. parameters[1].Value = model.F_DBTableName;
  379. parameters[2].Value = model.F_IsActivity;
  380. parameters[3].Value = model.F_Des;
  381. parameters[4].Value = model.F_LinkTableName;
  382. parameters[5].Value = model.F_LinkFieldName;
  383. parameters[6].Value = model.F_CreateSQL;
  384. parameters[7].Value = model.F_CreateOn;
  385. parameters[8].Value = model.F_ModifySQL;
  386. parameters[9].Value = model.F_LastModifyOn;
  387. #endregion
  388. #region 属性信息
  389. if (model.EntityAttributeItems != null)
  390. {
  391. int i = 0;
  392. foreach (Model.T_Form_EntityAttribute attributemodel in model.EntityAttributeItems)
  393. {
  394. strSql.Append("insert into T_Form_EntityAttribute(");
  395. strSql.Append("F_TypeId,F_DBTypeName,F_Name,F_DBFieldlName,F_Length,F_IsNullable,F_EntityId,F_DBTableName,F_DefaultValue,F_ColumnNumber,F_ValidForUpdateAPI,F_ValidForReadAPI,F_ValidForCreateAPI,F_VisibleToPlatform,F_IsPKAttribute,F_IsCustomField,F_DisplayMask,F_IsSortAttribute,F_PrecisionValue,F_IsIdentity,F_AppDefaultValue,F_Locked,F_MaxLength,F_MinValue,F_MaxValue,F_LookupKey,F_LookupStyle,F_IsLookup,F_Des)");
  396. strSql.Append(" values (");
  397. strSql.Append("@F_TypeId_" + i.ToString() + ",");
  398. strSql.Append("@F_DBTypeName_" + i.ToString() + ",");
  399. strSql.Append("@F_Name_" + i.ToString() + ",");
  400. strSql.Append("@F_DBFieldlName_" + i.ToString() + ",");
  401. strSql.Append("@F_Length_" + i.ToString() + ",");
  402. strSql.Append("@F_IsNullable_" + i.ToString() + ",");
  403. strSql.Append("@F_EntityId,");
  404. strSql.Append("@F_DBTableName_" + i.ToString() + ",");
  405. strSql.Append("@F_DefaultValue_" + i.ToString() + ",");
  406. strSql.Append("@F_ColumnNumber_" + i.ToString() + ",");
  407. strSql.Append("@F_ValidForUpdateAPI_" + i.ToString() + ",");
  408. strSql.Append("@F_ValidForReadAPI_" + i.ToString() + ",");
  409. strSql.Append("@F_ValidForCreateAPI_" + i.ToString() + ",");
  410. strSql.Append("@F_VisibleToPlatform_" + i.ToString() + ",");
  411. strSql.Append("@F_IsPKAttribute_" + i.ToString() + ",");
  412. strSql.Append("@F_IsCustomField_" + i.ToString() + ",");
  413. strSql.Append("@F_DisplayMask_" + i.ToString() + ",");
  414. strSql.Append("@F_IsSortAttribute_" + i.ToString() + ",");
  415. strSql.Append("@F_PrecisionValue_" + i.ToString() + ",");
  416. strSql.Append("@F_IsIdentity_" + i.ToString() + ",");
  417. strSql.Append("@F_AppDefaultValue_" + i.ToString() + ",");
  418. strSql.Append("@F_Locked_" + i.ToString() + ",");
  419. strSql.Append("@F_MaxLength_" + i.ToString() + ",");
  420. strSql.Append("@F_MinValue_" + i.ToString() + ",");
  421. strSql.Append("@F_MaxValue_" + i.ToString() + ",");
  422. strSql.Append("@F_LookupKey_" + i.ToString() + ",");
  423. strSql.Append("@F_LookupStyle_" + i.ToString() + ",");
  424. strSql.Append("@F_IsLookup_" + i.ToString() + ",");
  425. strSql.Append("@F_Des_" + i.ToString() + ")");
  426. SqlParameter[] parametersAttribute = {
  427. new SqlParameter("@F_TypeId_"+i.ToString(), SqlDbType.Int,4),
  428. new SqlParameter("@F_DBTypeName_"+i.ToString(), SqlDbType.NVarChar,50),
  429. new SqlParameter("@F_Name_"+i.ToString(), SqlDbType.NVarChar,50),
  430. new SqlParameter("@F_DBFieldlName_"+i.ToString(), SqlDbType.NVarChar,50),
  431. new SqlParameter("@F_Length_"+i.ToString(), SqlDbType.Int,4),
  432. new SqlParameter("@F_IsNullable_"+i.ToString(), SqlDbType.Bit,1),
  433. new SqlParameter("@F_DBTableName_"+i.ToString(), SqlDbType.NVarChar,50),
  434. new SqlParameter("@F_DefaultValue_"+i.ToString(), SqlDbType.NVarChar,50),
  435. new SqlParameter("@F_ColumnNumber_"+i.ToString(), SqlDbType.Int,4),
  436. new SqlParameter("@F_ValidForUpdateAPI_"+i.ToString(), SqlDbType.Bit,1),
  437. new SqlParameter("@F_ValidForReadAPI_"+i.ToString(), SqlDbType.Bit,1),
  438. new SqlParameter("@F_ValidForCreateAPI_"+i.ToString(), SqlDbType.Bit,1),
  439. new SqlParameter("@F_VisibleToPlatform_"+i.ToString(), SqlDbType.Bit,1),
  440. new SqlParameter("@F_IsPKAttribute_"+i.ToString(), SqlDbType.Bit,1),
  441. new SqlParameter("@F_IsCustomField_"+i.ToString(), SqlDbType.Bit,1),
  442. new SqlParameter("@F_DisplayMask_"+i.ToString(), SqlDbType.Int,4),
  443. new SqlParameter("@F_IsSortAttribute_"+i.ToString(), SqlDbType.Bit,1),
  444. new SqlParameter("@F_PrecisionValue_"+i.ToString(), SqlDbType.Int,4),
  445. new SqlParameter("@F_IsIdentity_"+i.ToString(), SqlDbType.Bit,1),
  446. new SqlParameter("@F_AppDefaultValue_"+i.ToString(), SqlDbType.Int,4),
  447. new SqlParameter("@F_Locked_"+i.ToString(), SqlDbType.Bit,1),
  448. new SqlParameter("@F_MaxLength_"+i.ToString(), SqlDbType.Int,4),
  449. new SqlParameter("@F_MinValue_"+i.ToString(), SqlDbType.Float,8),
  450. new SqlParameter("@F_MaxValue_"+i.ToString(), SqlDbType.Float,8),
  451. new SqlParameter("@F_LookupKey_"+i.ToString(), SqlDbType.NVarChar,50),
  452. new SqlParameter("@F_LookupStyle_"+i.ToString(), SqlDbType.NVarChar,50),
  453. new SqlParameter("@F_IsLookup_"+i.ToString(), SqlDbType.Bit,1),
  454. new SqlParameter("@F_Des_"+i.ToString(), SqlDbType.NVarChar,500)};
  455. parametersAttribute[0].Value = attributemodel.F_TypeId;
  456. parametersAttribute[1].Value = attributemodel.F_DBTypeName;
  457. parametersAttribute[2].Value = attributemodel.F_Name;
  458. parametersAttribute[3].Value = attributemodel.F_DBFieldlName;
  459. parametersAttribute[4].Value = attributemodel.F_Length;
  460. parametersAttribute[5].Value = attributemodel.F_IsNullable;
  461. parametersAttribute[6].Value = attributemodel.F_DBTableName;
  462. parametersAttribute[7].Value = attributemodel.F_DefaultValue;
  463. parametersAttribute[8].Value = attributemodel.F_ColumnNumber;
  464. parametersAttribute[9].Value = attributemodel.F_ValidForUpdateAPI;
  465. parametersAttribute[10].Value = attributemodel.F_ValidForReadAPI;
  466. parametersAttribute[11].Value = attributemodel.F_ValidForCreateAPI;
  467. parametersAttribute[12].Value = attributemodel.F_VisibleToPlatform;
  468. parametersAttribute[13].Value = attributemodel.F_IsPKAttribute;
  469. parametersAttribute[14].Value = attributemodel.F_IsCustomField;
  470. parametersAttribute[15].Value = attributemodel.F_DisplayMask;
  471. parametersAttribute[16].Value = attributemodel.F_IsSortAttribute;
  472. parametersAttribute[17].Value = attributemodel.F_PrecisionValue;
  473. parametersAttribute[18].Value = attributemodel.F_IsIdentity;
  474. parametersAttribute[19].Value = attributemodel.F_AppDefaultValue;
  475. parametersAttribute[20].Value = attributemodel.F_Locked;
  476. parametersAttribute[21].Value = attributemodel.F_MaxLength;
  477. parametersAttribute[22].Value = attributemodel.F_MinValue;
  478. parametersAttribute[23].Value = attributemodel.F_MaxValue;
  479. parametersAttribute[24].Value = attributemodel.F_LookupKey;
  480. parametersAttribute[25].Value = attributemodel.F_LookupStyle;
  481. parametersAttribute[26].Value = attributemodel.F_IsLookup;
  482. parametersAttribute[27].Value = attributemodel.F_Des;
  483. strSql.Append(" SELECT @err=@err+@@ERROR; ");
  484. string isnull = " NULL ";
  485. string ispkey = "";
  486. string defaultvalue = "";
  487. string identity = "";
  488. string fieldname = attributemodel.F_DBTypeName;
  489. if (attributemodel.F_Length != null)
  490. {
  491. fieldname = fieldname + "(" + attributemodel.F_Length.ToString() + ")";
  492. }
  493. if (attributemodel.F_IsNullable)
  494. {
  495. isnull = " NULL ";
  496. }
  497. else
  498. {
  499. isnull = " NOT NULL ";
  500. }
  501. if (attributemodel.F_IsPKAttribute)
  502. {
  503. ispkey = " primary key ";
  504. }
  505. else
  506. {
  507. ispkey = "";
  508. }
  509. if (attributemodel.F_IsIdentity)
  510. {
  511. identity = " IDENTITY(1,1) ";
  512. }
  513. else
  514. {
  515. identity = "";
  516. }
  517. if (!string.IsNullOrEmpty(attributemodel.F_DefaultValue))
  518. {
  519. defaultvalue = " default(" + attributemodel.F_DefaultValue.Trim() + ") ";
  520. }
  521. strFildSql.Append("[" + attributemodel.F_DBFieldlName + "] " + fieldname + isnull + ispkey + identity + defaultvalue + " ,");
  522. //遍历绑定参数
  523. foreach (SqlParameter parm in parametersAttribute)
  524. {
  525. if ((parm.Direction == ParameterDirection.InputOutput || parm.Direction == ParameterDirection.Input) &&
  526. (parm.Value == null))
  527. {
  528. parm.Value = DBNull.Value;
  529. }
  530. cmd.Parameters.Add(parm);
  531. }
  532. i++;
  533. }
  534. }
  535. #endregion
  536. #region 创建表
  537. strFildSql.Append("#@!");
  538. strSql.Append("CREATE TABLE [dbo].[" + model.F_DBTableName + "] (");
  539. strSql.Append(strFildSql.ToString().Replace(",#@!", "").Replace("#@!", ""));
  540. strSql.Append(")");
  541. strSql.Append(" SELECT @err=@err+@@ERROR; ");
  542. #endregion
  543. parameters[6].Value = "CREATE TABLE [dbo].[" + model.F_DBTableName + "] (" + strFildSql.ToString().Replace(",#@!", "").Replace("#@!", "") + ")";
  544. foreach (SqlParameter parm in parameters)
  545. {
  546. if ((parm.Direction == ParameterDirection.InputOutput || parm.Direction == ParameterDirection.Input) &&
  547. (parm.Value == null))
  548. {
  549. parm.Value = DBNull.Value;
  550. }
  551. cmd.Parameters.Add(parm);
  552. }
  553. #region 执行命令
  554. cmd.CommandType = CommandType.Text;
  555. cmd.Connection = trans.Connection;
  556. cmd.Transaction = trans;
  557. strSql.Append(" end ");
  558. cmd.CommandText = strSql.Append("SELECT @err,@res").ToString();
  559. using (SqlDataReader rdr = cmd.ExecuteReader())
  560. {
  561. rdr.Read();
  562. // 如果错误的数量不为零, 抛出异常终止操作
  563. if (rdr.GetInt32(0) != 0)
  564. {
  565. //throw new ApplicationException("数据插入错误 —— 回滚原因");
  566. trans.Rollback();
  567. res = -1;
  568. }
  569. else
  570. {
  571. res = rdr.GetInt32(1);
  572. }
  573. }
  574. ///提交事务
  575. trans.Commit();
  576. cmd.Parameters.Clear();
  577. #endregion
  578. }
  579. catch
  580. {
  581. res = -1;
  582. ///事务回滚
  583. trans.Rollback();
  584. //throw new ApplicationException(e.Message);
  585. }
  586. finally
  587. {
  588. strSql = null;
  589. conn.Close();
  590. conn.Dispose();
  591. }
  592. }
  593. return res;
  594. }
  595. catch
  596. {
  597. return -1;
  598. }
  599. }
  600. }
  601. }