c#如何灵活的设定表的列名传参

springcyq 2013-11-26 05:14:23
各位大哥大姐,小弟最近遇到一个难题。
需要写一个WebServices接口,用来给客户Insert资料到我的数据库中。
假设:我的数据库有一个表,名为学员信息表,有四列:学号、姓名、性别、年龄。
按照正常情况,如下写就行:
[WebMethod(Description = "导入学员信息")]
public string InsertData(string K1(学号),string K2(姓名),string K3(性别),string K4(年龄))
{
//代码省略
return "返回结果字符串";
}
难点来了。
我不想让客户知道表中有这四列,而是让他们自己定义要传进来的列。
例:A用户,指定A1是学号,A2是姓名,然后他就传这两列进来。
public string InsertData(string A1,string A2)
例:B用户,指定B1是学号,B2是姓名,B3是年龄,然后他就传这三列进来。
public string InsertData(string B1,string B2,string B3)
难点在于:
1.InsertData要统一传参个数,不能A客户两个参数,B客户三个参数,因为客户越来越多,组合也越来越多,不能新增一个客户,就写一个新接口。
实际上,列很多,不仅仅是四个。
客户不用,需要用到的列的个数就不同,不可能在接口中写出所有的列,让客户把不用的列传空值的,这样客户体验就下降了。
对于这么多客户,统一传参怎么实现?
2.怎么来转换客户自定的列名?即,怎么知道A1、B1对应的是学号,A2、B2对应的是姓名?

请各位大哥大姐指教,感谢!
...全文
383 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
springcyq 2013-12-20
  • 打赏
  • 举报
回复
引用 17 楼 rtdb 的回复:
[quote=引用 16 楼 springcyq 的回复:] [quote=引用 15 楼 zhs23 的回复:] XML为什么不用?传一个XML文档。随意怎么写。根据你的标准就行
想过用XML,但是感觉同样的内容JSON比XML要更简洁短小。[/quote] 应该用XML。 XML的可读性和扩展性都比JSON好。节省那点数据是不必要的。 [/quote] 这样啊……但是我领导已经决定用JSON了……谢谢哥哥!
springcyq 2013-12-19
  • 打赏
  • 举报
回复
引用 15 楼 zhs23 的回复:
XML为什么不用?传一个XML文档。随意怎么写。根据你的标准就行
想过用XML,但是感觉同样的内容JSON比XML要更简洁短小。
rtdb 2013-12-19
  • 打赏
  • 举报
回复
引用 16 楼 springcyq 的回复:
[quote=引用 15 楼 zhs23 的回复:] XML为什么不用?传一个XML文档。随意怎么写。根据你的标准就行
想过用XML,但是感觉同样的内容JSON比XML要更简洁短小。[/quote] 应该用XML。 XML的可读性和扩展性都比JSON好。节省那点数据是不必要的。
迷迷520 2013-12-18
  • 打赏
  • 举报
回复
XML为什么不用?传一个XML文档。随意怎么写。根据你的标准就行
springcyq 2013-12-18
  • 打赏
  • 举报
回复
初步决定传JSON格式的字符串,等写好了,再来发表回复并结贴。
圣光麦造 2013-12-02
  • 打赏
  • 举报
回复

传两个参数 
1.表名
2.Dictionary<列名,值>

insert into 表名 (循环Dictionary的key) values (循环Dictionary的value)
PaulyJiang 2013-12-02
  • 打赏
  • 举报
回复
自己定义一个Entity 给客户传啊
springcyq 2013-12-02
  • 打赏
  • 举报
回复
还在思考中,完成后会给出采用的方法并结贴。
_小黑_ 2013-12-02
  • 打赏
  • 举报
回复
楼主 看看 三层 或mvc
rtdb 2013-11-27
  • 打赏
  • 举报
回复
引用 5 楼 springcyq 的回复:
[quote=引用 2 楼 rtdb 的回复:] 基本意思是传 LIST of ( Name , Value): public string InsertData(List<string> NameList, List<string> DataList);
请问这种传参支持其他语言来调用吗?例如Java。[/quote]JAVA可以的
springcyq 2013-11-27
  • 打赏
  • 举报
回复
引用 4 楼 youzelin 的回复:
用 Optional Parameter,.NET 4.0 引入的新特性。

public string InsertData(string number = "", string name = "", string gender = "", string age = "")
{
    ......
} 
// Call
InsertData(name = "ZhangSan", age = 23);
InsertData(number = 12345, gender = "male");
......// 此处省略各种组合
请问这种传参支持其他语言来调用吗?例如Java。
springcyq 2013-11-27
  • 打赏
  • 举报
回复
引用 2 楼 rtdb 的回复:
基本意思是传 LIST of ( Name , Value): public string InsertData(List<string> NameList, List<string> DataList);
请问这种传参支持其他语言来调用吗?例如Java。
  • 打赏
  • 举报
回复
封装成对象不就好了么
reenjie 2013-11-27
  • 打赏
  • 举报
回复
引用 楼主 springcyq 的回复:
各位大哥大姐,小弟最近遇到一个难题。 需要写一个WebServices接口,用来给客户Insert资料到我的数据库中。 假设:我的数据库有一个表,名为学员信息表,有四列:学号、姓名、性别、年龄。 按照正常情况,如下写就行: [WebMethod(Description = "导入学员信息")] public string InsertData(string K1(学号),string K2(姓名),string K3(性别),string K4(年龄)) { //代码省略 return "返回结果字符串"; } 难点来了。 我不想让客户知道表中有这四列,而是让他们自己定义要传进来的列。 例:A用户,指定A1是学号,A2是姓名,然后他就传这两列进来。 public string InsertData(string A1,string A2) 例:B用户,指定B1是学号,B2是姓名,B3是年龄,然后他就传这三列进来。 public string InsertData(string B1,string B2,string B3) 难点在于: 1.InsertData要统一传参个数,不能A客户两个参数,B客户三个参数,因为客户越来越多,组合也越来越多,不能新增一个客户,就写一个新接口。 实际上,列很多,不仅仅是四个。 客户不用,需要用到的列的个数就不同,不可能在接口中写出所有的列,让客户把不用的列传空值的,这样客户体验就下降了。 对于这么多客户,统一传参怎么实现? 2.怎么来转换客户自定的列名?即,怎么知道A1、B1对应的是学号,A2、B2对应的是姓名? 请各位大哥大姐指教,感谢!

public string InsertData(Student stu)
{
//代码省略
return "返回结果字符串";
}
youzelin 2013-11-26
  • 打赏
  • 举报
回复
用 Optional Parameter,.NET 4.0 引入的新特性。

public string InsertData(string number = "", string name = "", string gender = "", string age = "")
{
    ......
} 
// Call
InsertData(name = "ZhangSan", age = 23);
InsertData(number = 12345, gender = "male");
......// 此处省略各种组合
csdnFUCKINGSUCKS 2013-11-26
  • 打赏
  • 举报
回复
传一个字典 后台查找键值对
rtdb 2013-11-26
  • 打赏
  • 举报
回复
基本意思是传 LIST of ( Name , Value): public string InsertData(List<string> NameList, List<string> DataList);
  • 打赏
  • 举报
回复
把做好的模版给客户 或让客户下载模版 终止就是让客户按照你的滚则来,不这样做就会无分控制上传的数据格式 然后 可以获取固定好的列 col[0] col[1]...
内容概要:本文围绕“面向高精度电流控制的PMSM多参数PSO辨识模型研究”,系统阐述了基于Simulink的永磁同步电机(PMSM)多参数辨识方法,重点采用粒子群优化算法(PSO)实现对电机关键内部参数的高精度辨识。研究构建了完整的PMSM控制系统仿真模型,结合智能优化算法,解决了传统参数辨识中精度低、收敛慢的问题,有效提升了电流环控制的动态性能与稳态精度。该方法特别适用于对控制精度和响应速度要求较高的工业应用场景,如高性能伺服系统、电动汽车驱动系统等,具有较强的工程实用价值和科研参考意义。文中提供了完整的Simulink仿真模型与配套代码,确保了研究内容的可复现性和实践操作性。; 适合人群:具备电机控制、自动化或电气工程等相关专业背景,熟悉MATLAB/Simulink仿真环境,从事电机驱动系统研发、控制算法设计或相关领域科研工作的工程师及研究生,尤其适合工作1-5年、希望深入理解先进参数辨识技术的研发人员。; 使用场景及目标:①开展高精度PMSM控制系统的设计与参数辨识研究;②学习并掌握PSO等智能优化算法在电机系统参数辨识中的具体实现与调优技巧;③完成学术论文复现、科研项目验证、毕业设计或工程原型开发,提升对现代电机控制核心技术的理解与应用能力。; 阅读建议:建议读者结合提供的Simulink模型与源代码进行动手实践,按照文档逻辑逐步搭建与调试仿真系统,重点关注PSO算法与电机模型的交互机制、目标函数设计及参数收敛过程,通过对比不同工况下的辨识结果,深入理解算法性能与控制精度之间的内在联系。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧