我有一个场景,其中包含以下详细信息:
我有一个表单,其中包含客户1的名字、中间名、姓氏、道布、个人识别码、地址等字段。
现在这个表单必须满足多个客户的需求。问题是-不同的客户端可能需要在前端显示不同数量的字段。例如:第二个客户会想要-国家字段而不是个人识别码,将不需要在表单上的地址。
现在,当我提交表单时,目前我有一个常量查询,它接受-名字、中间名、姓氏、道布、pin、地址的值,并将其插入到客户端1的数据库中。我希望开发一个在运行时创建的查询,并且只将来自表单的值插入到数据库中。
我希望我的问题是清楚的。有人能帮上忙吗?
发布于 2011-11-16 19:30:39
你需要考虑一下你为什么要这么做。
它将变得可怕的复杂,仅仅是人的形式,添加更多,它将气球大的风格。
动态构建查询并不是特别复杂,但需要编写大量代码。只需考虑要添加到查询中的每个字段及其类型。如果您的个人记录中的某个属性是它们的图像,该怎么办?你有没有一个表格的配置,是主键的记录是auto inc,还是复合键,你用的是默认值,是不是有些字段不为空。您将如何冒泡回引用完整性异常...
做一个全唱全跳的版本,基本上你就可以重新发明像Access IDE这样的东西了……
就我个人而言,我有一个Person对象,它有一组Person Properties,它们有name、一个值和一个布尔值来说明它们是否被更改过。
一旦你有了已更改的属性和信标的列表,你就在Person对象中,你知道这个表是Person,它是由autoinc bigint键入的,性别是必填的,默认是男性……
你有战斗的机会。
您的查询应使用参数
所以它应该是插入人员(FirstName,LastName,PIN值)值(@FirstName,@LastName,@PIN)
然后,您可以快速处理更改后的字段,并添加具有相同名称、类型和值的参数。
正如我所说的,你真的可以带着这个去镇上,也许是时候在里面呆一晚上了。
发布于 2011-11-16 18:50:54
这应该意味着表中的一些字段可以为空,在这种情况下,您可以不使用动态查询。只需从表单中收集所有输入并将它们插入到表中即可。由于不同用户需求而保留为空的那些表单域在您的表中将相应的域保留为空。因此,只需在插入查询中列出表中所有需要的字段和表单中所有可能的输入。
https://stackoverflow.com/questions/8149937
复制相似问题