首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 问个数据库问题5555555555 [已结贴,结贴人:wenkekenihao]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:10:28 楼主
    小弟,正在做一个产品后台,产品的参数都已经知道了
    按平时都是事先建好一个表,所有的参数字段都设计好.
    然后直接添加数据即可.
    但这样觉的不灵活,万一以后要再加一个参数,那么我还要改数据库表,还要改程序里的函数等等,
    很麻烦.
    我是这样想的.再建一个参数表,可以动态添加参数,
    然后通过ado.net动态增删字段,
    但是程序里的参数怎么动态添加啊
    比如
    public int addNews(string name,string price)
    {
      .......//添加产品
     
    }
    现在是2个参数,假如我又加了一个字段,那么这个方法又如何动态加参数呢.
    还是我的思路有问题啊.麻烦高手指教啊.
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jinjazz
    • 等级:
    发表于:2008-06-17 15:14:141楼 得分:0
    SQL code
    alter tabe xxx add fff varchar(10)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jinjazz
    • 等级:
    发表于:2008-06-17 15:14:372楼 得分:0
    SQL code
    alter table xxx add ppp float
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:19:313楼 得分:0
    你没有回答我的问题啊.我知道sql语句啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:24:584楼 得分:0
    没卡懂
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yfqvip
    • 等级:
    发表于:2008-06-17 15:26:065楼 得分:5
    这个是没办法的事情,数据库动了,你的代码必然要跟着动,你只能选择一种比较容易修改的方法,选择符合你要求的设计模式.
    一般用工厂模式的比较多,有利于后期维护的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:26:336楼 得分:5
    public int addNews(string[] parameters)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:28:437楼 得分:5
    参数数组..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:30:598楼 得分:5
    如果你用得是三层架构,数据交换就可以通model,
    这样相对改得地方不用这么多,
    可是橡楼主这一本万利的思想不可以呀,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:32:569楼 得分:5
    tableField表
    id  fieldname  other ........
    1    name         
    2    price


    tableValues表
    id  fieldID    value  ..........
    1    1        张三
    2    1        李四 


    能不能看懂靠自己了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:33:1810楼 得分:0
    哪位大哥,谁能给点代码啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shoushii
    • 等级:
    发表于:2008-06-17 15:33:5811楼 得分:15
    1、可以设置6个备注字段,6可以是看作一个黄金分割点。一般增加的字段不会超过6个。这样,可以使用备注,而不必使用新增字段了,代码就不改了。
    2、代码生成器。没什么好说的,一键搞定。
    3、不使用3层结构,使用关系绑定,UI直接操作数据库,改动UI即可关联数据库,当然这需要某些模式和思想。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:34:4312楼 得分:5
    字段不确定的话就用参数数组
    或用字符串加分隔符
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shoushii
    • 等级:
    发表于:2008-06-17 15:35:2013楼 得分:5
    第一个表示需要的表
    第二个表包含第一个表的信息
    第三个表是对第二个表的描述
    第四个表是个常量表

    这样既可,不过编码太庞大了。

    内容采编发
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • china_k1
    • 等级:
    发表于:2008-06-17 15:38:2614楼 得分:5
    恩,参数数组很不错
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:42:0815楼 得分:0
    参数数组,谁能给点代码啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:43:4516楼 得分:5
    引用 12 楼 wxg22526451 的回复:
    字段不确定的话就用参数数组
    或用字符串加分隔符


    我也是这样做的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:45:3617楼 得分:5
    没看明白
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 15:53:0118楼 得分:20
    数据库动态参数的实现可以用 XML 数据类型
    HTML code
    <params> <name>test</name> <id>001</id> </params>


    .NET 参数数组代码如下

    C# code
    // cs_params.cs using System; public class MyClass { public static void UseParams(params int[] list) { for ( int i = 0 ; i < list.Length ; i++ ) Console.WriteLine(list[i]); Console.WriteLine(); } public static void UseParams2(params object[] list) { for ( int i = 0 ; i < list.Length ; i++ ) Console.WriteLine(list[i]); Console.WriteLine(); } public static void Main() { UseParams(1, 2, 3); UseParams2(1, 'a', "test"); int[] myarray = new int[3] {10,11,12}; UseParams(myarray); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 16:24:0119楼 得分:0
    帮你顶 一下!也在学习~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 16:26:1620楼 得分:0
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 19:23:2521楼 得分:5
    最直接的方法是把可能的字段全加上
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 19:39:3222楼 得分:0
    18楼说的
    很好
    学习一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-17 20:26:2823楼 得分:5
    18楼的用 XML 数据类型实现 数据库动态参数 很好很强大!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-18 11:56:4924楼 得分:5
    引用 11 楼 shoushii 的回复:
    1、可以设置6个备注字段,6可以是看作一个黄金分割点。一般增加的字段不会超过6个。这样,可以使用备注,而不必使用新增字段了,代码就不改了。
    2、代码生成器。没什么好说的,一键搞定。
    3、不使用3层结构,使用关系绑定,UI直接操作数据库,改动UI即可关联数据库,当然这需要某些模式和思想。

    建议使用这种,我以往也是这样做的。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved