/// <summary>
/// 添加一个实体
/// </summary>
/// <typeparam name="T">实体名称</typeparam>
/// <param name="dic">需要添加的字段</param>
/// <returns>返回影响的行数</returns>
public static int AddEntity<T>(Dictionary<string, object> dic) where T : class,new()
{

T t = new T();
var propertys = typeof(T).GetProperties();
string FieldKey = string.Empty;
string FieldValue = string.Empty;
foreach (var p in propertys)
{
foreach (var key in dic.Keys)
{
if (p.Name.ToUpper() == key.ToUpper())
{
FieldKey += p.Name.ToUpper() + ",";
if (p.PropertyType == typeof(int))
{
try
{
if (string.IsNullOrEmpty(dic[key].ToString()))
{
FieldValue += Convert.ToInt32(dic[key]) + ",";
}
else
{
FieldValue += Convert.ToInt32(dic[key]) + ",";
}
}
catch (Exception ex)
{
HttpContext.Current.Response.Write("提示:" + ex.Message);
}
}
else if (p.PropertyType == typeof(DateTime))
{
// 如果时间为空,就将当前时间赋值
if (string.IsNullOrEmpty(dic[key].ToString()))
{
FieldValue += "to_date('" + Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")) + "','yyyy-mm-dd HH24:mi:ss'),";
}
else
{
FieldValue += "to_date('" + Convert.ToDateTime(dic[key].ToString()) + "','yyyy-mm-dd HH24:mi:ss'),";
}
}
else
{
FieldValue += "'" + dic[key].ToString() + "',";
}
}
}
}
string tableName = GetTableNameToModel(t);
string sql = "insert into " + tableName + "(" + FieldKey.TrimEnd(',').ToString() + ") values(" + FieldValue.TrimEnd(',').ToString() + ")";
int result = OracleHelper.ExecuteNonQuery(sql);
return result;
}

oracle动态添加一条记录的更多相关文章

  1. 怎么计算Oracle的表一条记录占用空间的大小

    如何计算Oracle的表一条记录占用空间的大小? 如何计算Oracle的表记录占用空间的大小? 是把所有字段的大小都加起来吗?varchar(256),char,number算几个字节? ------ ...

  2. oracle 取前10条记录

    1.oracle 取前10条记录 1) select * from tbname where rownum < 11; 2) select * from (select * from tbnam ...

  3. Oracle 取前几条记录

    今天看了篇文章,对oracle取前几条数据的方式和说明,总结比较全,学习了,做个记录点.oracle 取前10条记录 以下内容是原始文章内容,用于做留存阅读. 1.oracle 取前10条记录 1) ...

  4. Oracle随机选择一条记录SQL

    Oracle随机选择一条记录SQL:

  5. Oracle取TOP N条记录(转载)

    在SQL Server里面有top关键字可以很方便的取出前N条记录,但是Oracle里面却没有top的使用,类似实现取出前N条记录的简单方法如下: 方法1:利用ROW_NUMBER函数 取出前5条记录 ...

  6. oracle中插入一条记录后,重新登录查找不到数据

    你插入了数据,但是没有提交.其他Session也就是你再次登录后自然就看不到了(但是在当前回话可以看到插入的数据),但是你用SQLPLUS EXIT之后再次登录就可以看到插入的数据了,因为ORACLE ...

  7. oracle 字段上下两条记录的相减

    SELECT T.ID  ,BALANCE,nvl(lag (BALANCE,1) over (order by T.ID ) ,0) FROM  AN T ORDER BY T.ID [转]orac ...

  8. oracle取前10条记录

    --oracle取前十条数据 --(1)第一种 ; --(2)第二种 ;

  9. mysql一次添加多条记录

    inisert into tabale (name,pwd) values ("jom","123"),("tom","123&q ...

随机推荐

  1. 计算机上面常用的计算单位 & 个人计算机架构与接口设备

    不多说,直接上干货! 计算机上面常用的计算单位 容量单位  速度单位  此网络常使用的单位为 Mbps 是 Mbits per second,亦即是每秒多少 Mbit. 个人计算机架构与接口设备 整个 ...

  2. 关于class的签名Signature

    举例1: public class Test05<A, B extends java.util.List<String>, C extends InputStream&Ser ...

  3. PCI配置空间简介

    一.PCI配置空间简介 PCI有三个相互独立的物理地址空间:设备存储器地址空间.I/O地址空间和配置空间.配置空间是PCI所特有的一个物理空间.由于PCI支持设备即插即用,所以PCI设备不占用固定的内 ...

  4. jdk内置类javax.imageio.ImageIO支持的图片处理格式

    执行这段代码输出支持的图片处理格式 String readFormats[] = ImageIO.getReaderFormatNames(); String writeFormats[] = Ima ...

  5. C/C++内存管理详解

    内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄 ...

  6. 开始使用 Vuejs 2.0 --- 组件间数据传递

    Vue1.0组件间传递 使用$on()监听事件: 使用$emit()在它上面触发事件: 使用$dispatch()派发事件,事件沿着父链冒泡: 使用$broadcast()广播事件,事件向下传导给所有 ...

  7. ruby文件操作

    Ruby代码 1.#读文件 2.f = File.open("myfile.txt", "r") 3.f.each_line do|line| 4.puts & ...

  8. IE浏览器版本的判断

    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 && userAgent.indexOf(; //判断是否IE< ...

  9. winform:对dataGridView绑定的泛型List<T> 的简单CRUD

      创建对象类,为所有成员封装字段,然后重载该类: 根据已有的对象类(类型参数)创建一个长度可以变化的List数组,并绑定数据源: 设置dataGridView的column属性:对应四个对象类创建相 ...

  10. POJ 2773 Happy 2006------欧几里得 or 欧拉函数。

    Happy 2006 Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 8359   Accepted: 2737 Descri ...