社区
C#
帖子详情
怎么写能够通用的更新数据库方法
jiangtianyin
2009-11-22 08:12:01
数据库中有多个表(c#语言)
更新数据库中的内容时,通常语句是 update TableName set 列名1=值1,列名2=值2,.....where 条件1 and 条件2......
我要更新的字段是不确定的,可能只有一个(各字段的数据类型也不确定),可能有多个,更新的条件也是不定的,我想构造一个通用的更新方法,表名通过参数指定,要更新的字段、值和条件也用参数传递,这种方法能实现吗?
我想过用数组,但是最主要的问题就是字段的数据类型不确定
...全文
86
8
打赏
收藏
怎么写能够通用的更新数据库方法
数据库中有多个表(c#语言) 更新数据库中的内容时,通常语句是 update TableName set 列名1=值1,列名2=值2,.....where 条件1 and 条件2...... 我要更新的字段是不确定的,可能只有一个(各字段的数据类型也不确定),可能有多个,更新的条件也是不定的,我想构造一个通用的更新方法,表名通过参数指定,要更新的字段、值和条件也用参数传递,这种方法能实现吗? 我想过用数组,但是最主要的问题就是字段的数据类型不确定
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
马老虎
2009-11-23
打赏
举报
回复
学习BD
mohugomohu
2009-11-23
打赏
举报
回复
反射。看看Hibernate就知道了
我的示例:http://www.heyant.com/html/Download49.html
cntracker
2009-11-23
打赏
举报
回复
[Quote=引用 3 楼 zhujiazhi 的回复:]
用反射可以达到的,
所有类的都继承自BaseModel的,如下一个insert语句
public string GetInsertQuery(BaseModel model, string tableName)
{
List <string> fields = new List <string>();
foreach (PropertyInfo pi in model.GetType().GetProperties())
{
fields.Add(pi.Name);
}
StringBuilder query = new StringBuilder("insert into " + tableName + "(");
StringBuilder value = new StringBuilder(" values(");
int index = 0;
int count = fields.Count;
foreach (string key in fields)
{
query.Append(key);
value.Append(prikey + key);
if (index < count - 1)
{
query.Append(",");
value.Append(",");
}
++index;
}
query.Append(")");
value.Append(")");
return query.ToString() + value.ToString();
}
[/Quote]
刚开始学习,不知道怎么用,
3楼的大侠说的不是太明白,再直接一些吧。大家都是生手
智商无下限
2009-11-22
打赏
举报
回复
这个问题10分,我就不说了。
hlp912
2009-11-22
打赏
举报
回复
楼上的二位,可否给个实例,谢谢
zhujiazhi
2009-11-22
打赏
举报
回复
用反射可以达到的,
所有类的都继承自BaseModel的,如下一个insert语句
public string GetInsertQuery(BaseModel model, string tableName)
{
List<string> fields = new List<string>();
foreach (PropertyInfo pi in model.GetType().GetProperties())
{
fields.Add(pi.Name);
}
StringBuilder query = new StringBuilder("insert into " + tableName + "(");
StringBuilder value = new StringBuilder(" values(");
int index = 0;
int count = fields.Count;
foreach (string key in fields)
{
query.Append(key);
value.Append(prikey + key);
if (index < count - 1)
{
query.Append(",");
value.Append(",");
}
++index;
}
query.Append(")");
value.Append(")");
return query.ToString() + value.ToString();
}
kinglshadow
2009-11-22
打赏
举报
回复
三层架构不是可以解决这个问题吗?你在model曾里面写对应表的get set方法,然后传递参数的时候,就调用model层方法set你需要传递的参数,然后传model中class的引用就OK了
wuyq11
2009-11-22
打赏
举报
回复
看看sqlhelper。使用反射或liSt<T>泛型保存
解决缓存和
数据库
双
写
数据一致性问题
解决缓存和
数据库
双
写
数据一致性问题缓存的作用缓存和
数据库
双
写
不一致的原因并发引发的一致性问题先
更新
数据库
,后
更新
缓存先删除缓存,后
更新
数据库
先
更新
数据库
,后删除缓存如何保证「第二步操作失败」的双
写
一致...
两难!先
更新
数据库
再删缓存?还是先删缓存再
更新
数据库
?
前言当我们在做
数据库
与缓存数据同步时,究竟
更新
缓存,还是删除缓存,究竟是先操作
数据库
,还是先操作缓存?本文带大家深度分析
数据库
与缓存的双
写
问题,并且给出了所有方案的实现代码方便大家参考。...
QT
通用
数据库
数据导入导出方案
QT提供了
通用
的
数据库
接口可以很方便的处理各种
数据库
,在项目中经常会遇到
数据库
数据的导入导出的需求. 由于各个
数据库
的DDL差异比较大,无法做到导出表结构的
通用
方案,这个只能借助相应
数据库
特有的SQL语句或者工具...
怎么用python
写
数据库
_Python实现
数据库
编程
方法
详解
本文实例讲述了Python实现
数据库
编程
方法
。分享给大家供大家参考。具体分析如下:用PYTHON语言进行
数据库
编程, 至少有六种
方法
可供采用. 我在实际项目中采用,不但功能强大,而且方便快捷.以下是我在工作和学习中经验...
Mysql
数据库
读
写
分离的实现
mysql-proxy是实现"读
写
分离(Read/Write Splitting)"的一个软件(MySQL官方提供 ,也叫中间件),基本的原理是让主
数据库
处理
写
操作(insert、update、delete),而从
数据库
处理查询操作(select)。而
数据库
的一致...
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章