// 同步加载所有数据 protected override IDType[] LoadAllIDImpl(string whereClause) { IDbCommand cmd = Conn.CreateCommand(); IDataReader r = null; List <IDType> dataLst = new List <IDType>(); try { cmd.CommandText = string.Format(@"select ID from {0} {1}", tbName, whereClause); r = cmd.ExecuteReader(); while (r.Read()) { IDType uid = (IDType)r.GetValue(0); dataLst.Add(uid); } } catch (Exception ex) { log.Error("\r\n==========\r\n" + cmd.CommandText + "\r\n" + ex.Message + "\r\n==========\r\n" + ex.StackTrace + "\r\n==========\r\n"); throw ex; } finally { if (r != null) { r.Close(); } } return(dataLst.ToArray()); }
// 同步加载所有数据 protected override byte[][] LoadAllImpl(string whereClause) { IDbCommand cmd = Conn.CreateCommand(); IDataReader r = null; List <byte[]> dataLst = new List <byte[]>(); try { cmd.CommandText = string.Format(@"select Data from {0} {1}", tbName, whereClause); r = cmd.ExecuteReader(); while (r.Read()) { object dataObj = r.GetValue(0); byte[] data = dataObj is DBNull ? null : (byte[])dataObj; dataLst.Add(data); } } catch (Exception ex) { log.Error("\r\n==========\r\n" + cmd.CommandText + "\r\n" + ex.Message + "\r\n==========\r\n" + ex.StackTrace + "\r\n==========\r\n"); throw ex; } finally { if (r != null) { r.Close(); } } return(dataLst.ToArray()); }
// 将缓冲同步落地保存 protected override void UpdateImpl(IDType id, T d, byte[] buff) { string addCols = ""; if (cols != null && cols.Length > 0) { foreach (string c in cols) { object v = cvm(d, c); if (v != null) { addCols += ", " + c + "=" + NamedParam(c); } } } IDbCommand cmd = Conn.CreateCommand(); try { cmd.CommandText = string.Format(@"update {0} set Data = {1}{2} where ID = {3}", tbName, NamedParam("Data"), addCols, NamedParam("ID")); IDbDataParameter idParam = cmd.CreateParameter(); idParam.ParameterName = RealParam("ID"); idParam.DbType = GetDbType(id, "ID"); idParam.Value = id; cmd.Parameters.Add(idParam); IDbDataParameter dataParam = cmd.CreateParameter(); dataParam.ParameterName = RealParam("Data"); dataParam.DbType = DbType.Binary; dataParam.Value = buff; cmd.Parameters.Add(dataParam); if (cols != null && cols.Length > 0) { foreach (string c in cols) { object v = cvm(d, c); if (v == null) { continue; } IDbDataParameter p = cmd.CreateParameter(); p.ParameterName = RealParam(c); p.DbType = GetDbType(v, c); p.Value = v; cmd.Parameters.Add(p); } } cmd.ExecuteNonQuery(); } catch (Exception ex) { log.Error("\r\n==========\r\n" + cmd.CommandText + "\r\n" + ex.Message + "\r\n==========\r\n" + ex.StackTrace + "\r\n==========\r\n"); throw ex; } }
// 同步删除指定 id 的数据 protected override void DeleteImpl(IDType id) { IDbCommand cmd = Conn.CreateCommand(); try { cmd.CommandText = string.Format(@"Delete from {0} where ID = {1}", tbName, NamedParam("ID")); IDbDataParameter idParam = cmd.CreateParameter(); idParam.ParameterName = RealParam("ID"); idParam.DbType = GetDbType(id, "ID"); idParam.Value = id; cmd.Parameters.Add(idParam); cmd.ExecuteNonQuery(); } catch (Exception ex) { log.Error("\r\n==========\r\n" + cmd.CommandText + "\r\n" + ex.Message + "\r\n==========\r\n" + ex.StackTrace + "\r\n==========\r\n"); throw ex; } }
// 同步加载指定 id 的数据 protected override byte[] LoadImpl(IDType id) { IDbCommand cmd = Conn.CreateCommand(); IDataReader r = null; byte[] data = null; try { cmd.CommandText = string.Format(@"select Data from {0} where ID = {1}", tbName, NamedParam("ID")); IDbDataParameter idParam = cmd.CreateParameter(); idParam.ParameterName = RealParam("ID"); idParam.DbType = GetDbType(id, "ID"); idParam.Value = id; cmd.Parameters.Add(idParam); r = cmd.ExecuteReader(); if (r.Read()) { data = (byte[])r.GetValue(0); } } catch (Exception ex) { log.Error("\r\n==========\r\n" + cmd.CommandText + "\r\n" + ex.Message + "\r\n==========\r\n" + ex.StackTrace + "\r\n==========\r\n"); throw ex; } finally { if (r != null) { r.Close(); } } return(data); }