/// <summary> /// 功能:删除表中Key值为KeywordValue的纪录 /// </summary> /// <param name="tblName">表名</param> /// <param name="Keyword">表的主键</param> /// <param name="KeywordValue">要查询的主键的值</param> /// <param name="Tra">事务对象</param> public virtual bool DeleteBase(string tblName, string[] Keyword, string[] KeywordValue, IDbTransaction Tra) { if (String.IsNullOrEmpty(tblName)) { throw new ArgumentNullException("tblName"); } if (Keyword == null || Keyword.Length == 0) { throw new ArgumentNullException("Keyword"); } if (KeywordValue == null || KeywordValue.Length == 0) { throw new ArgumentNullException("KeywordValue"); } if (Keyword.Length != KeywordValue.Length) { throw new ArgumentException("无效的主键值" + "(Keyword KeywordValue)"); } //开始创建SQL StringBuilder sBuilder = new StringBuilder(); IDataParameters paras = new DataParameters(m_DBaseAdapter); for (int i = 0; i < Keyword.Length; i++) { string pName = m_DBaseAdapter.AdaptParameterName("KeywordValue" + i); sBuilder.Append(Keyword[i] + " = " + pName + CommonSQL.AND); paras.AddParameterValue(pName, KeywordValue[i]); } sBuilder = sBuilder.Remove(sBuilder.Length - CommonSQL.AND.Length, CommonSQL.AND.Length);//去掉最后的AND string DelSql = String.Format(CommonSQL.SQL_DELETE, tblName, sBuilder.ToString()); int rtnFlag = ExecuteNonQuery(Tra, DelSql, paras.Parameters); return(rtnFlag == 1); }
public void cc() { String connectionString = "Data Source=.;Initial Catalog=MyDB;User Id=sa;Password=sa;"; String dataBaseType = "SQLServer"; Draco.DB.QuickDataBase.Configuration.ConnectionInfo connInfo = new ConnectionInfo(connectionString, dataBaseType); Draco.DB.QuickDataBase.IDataBaseContext ctx = new Draco.DB.QuickDataBase.DataBaseContext(connInfo); Draco.DB.QuickDataBase.IDataBaseHandler handler = ctx.Handler; //开始数据库操作 //...... //以IDataBaseHandler对象获取Draco.DB.QuickDataBase.IDataBaseContext对象 Draco.DB.QuickDataBase.Adapter.IDataBaseAdapter adp = handler.DbAdapter; //创建单一参数对象 System.Data.IDataParameter para = adp.CreateParameter("@Para", "abc"); //快速创建参数化对象数组 Draco.DB.QuickDataBase.IDataParameters parameters = new Draco.DB.QuickDataBase.Common.DataParameters(adp); parameters.AddParameterValue("FiledNameX", 1); parameters.AddParameterValue("FiledNameY", "abc"); parameters.AddParameterValue("FiledNameZ", DateTime.Now); System.Data.IDataParameter[] _Parameters = parameters.Parameters; String SQL = "select * from tab where field1=? and (field2=? or field3>?)"; Draco.DB.QuickDataBase.ParameterizedSQL param = handler.DbAdapter.AdaptSQLAnonymousParams(SQL, 100, "ABC", DateTime.Now); DataSet ds = handler.ExecuteQuery(param.SQL, param.Parameters); Draco.DB.QuickDataBase.ISQLGenerator SQLGen = adp.GetSQLGenerator(); Draco.DB.QuickDataBase.IDataBaseSchemaHandler schemaHandler = adp.GetSchemaHandler(handler); String timeSQL = adp.NamedSQLs["Test.TimeSQL"]; Object obj = handler.ExecuteScalar(timeSQL); // ctx.Handler.StartTransaction(); ctx.Handler.CommitTransaction(); handler.StartTransaction(); handler.CommitTransaction(); using (Draco.DB.QuickDataBase.Common.DbTransactionScope scope = new DbTransactionScope(handler)) { try { //.... scope.Complete();// } catch { } } Draco.DB.ORM.IORMContext octx = new ORMContext(connInfo); Draco.DB.ORM.Schema.Vendor.ISchemaLoader Loader = octx.SchemaLoader; //获取加载器 Draco.DB.ORM.Schema.Dbml.Database dataBase = Loader.Load("Name", "Draco.DataTblCtrlLayer", null); //加载数据库构架 Draco.DB.ORM.Generator.EntityCodeGenerator Generator = new EntityCodeGenerator(dataBase); //创建代码生成器 string Code = Generator.GenerateCode("MyEntity", "GUID", true); //创建C#代码 System.IO.File.WriteAllText("D:\\MyEntity.cs", Code, System.Text.Encoding.UTF8); //输出C#代码到文件 }