问个简单字符串问题?

duanzhi1984 2011-03-19 01:29:44
1、如何把字符 @name='jim' and @id=10 and @project='IT001'
拆成配对的dictionary
@name 'jim'
@id 10
@project 'IT001'


2、字符串:

with cte as
(SELECT distinct DBB006 FROM WOMDBA with(nolock) JOIN WOMDBB ON DBA001=DBB001 AND DBB002=DBA002 AND DBB003=DBA003 AND DBA004=DBB004
WHERE DBA002=@客户编号 AND DBA003 LIKE '54%' AND DBA005 BETWEEN @开始日期 AND @结束日期
and exists(select 1 from INVMHC with(nolock) WHERE MHC002=DBA002 AND MHC003=DBB006 AND MHC016='Y'))

select DHB002,DHA005,DHA009,DHA010,DHB006,DHB007,DHB008,DHB009,DHB011,DHB018,DHB029 from PURDHA with(nolock) JOIN PURDHB with(nolock) ON DHA002=DHB002
AND DHA003=DHB003 AND DHA004=DHB004
WHERE (DHA005 BETWEEN @开始日期 AND @结束日期
AND DHA002=@客户编号)
and DHB006 not in (select DBB006 from cte)

如何将以上的@开头的字符提取出来,结果 :

@客户编号 @开始日期 @结束日期




...全文
125 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
duanzhi1984 2011-03-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wanghui0380 的回复:]
??需要拆吗???

不需要拆,那些都是参数

参数是你传进去滴,而不是拆出来滴
[/Quote]
关我就是要拆
wanghui0380 2011-03-19
  • 打赏
  • 举报
回复
让ado.net自动生成参数的方法

http://www.cnblogs.com/dushouke/archive/2009/08/03/DeriveParameters-Get-Parameter-Information-for-Stored-Procedure.html
wanghui0380 2011-03-19
  • 打赏
  • 举报
回复
如果你是懒得写参数定义,也可以让ado.net自己去生成参数

http://msdn.microsoft.com/zh-cn/library/yy6y35y8.aspx

[Quote=msdn]{还可以使用 DbCommandBuilder 类从存储过程派生参数。 SqlCommandBuilder 和 OleDbCommandBuilder 类都提供了静态方法 DeriveParameters,该静态方法将自动使用存储过程中的参数信息填充 Command 对象的 Parameters 集合。 请注意,DeriveParameters 会覆盖此命令的任何现有参数信息。 [/Quote]

yalan 2011-03-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wanghui0380 的回复:]
??需要拆吗???

不需要拆,那些都是参数

参数是你传进去滴,而不是拆出来滴
[/Quote]

如果是想要使用存储过程,我认为也不用拆,直接传递参数就行了。

如:
//添加参数
myCommand.Parameters.Add("@name",SqlDbType.VarChar);
myCommand.Parameters["@name"].Value ="jim";

//添加输出参数
myCommand.Parameters.Add("@id",SqlDbType.Int);
myCommand.Parameters["@id"].Value=10;

wanghui0380 2011-03-19
  • 打赏
  • 举报
回复
??需要拆吗???

不需要拆,那些都是参数

参数是你传进去滴,而不是拆出来滴
机器人 2011-03-19
  • 打赏
  • 举报
回复
(?is)(?<=@)(?<paramName>[^=]*?)=(?<paramValue>[^=]*?)(?=(\s|$))

取macth.Groups["paramName"] 和 match.Groups["paramValue"]
duanzhi1984 2011-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nidexuanzhe 的回复:]
什么意思啊,
说清楚点
[/Quote]

如何把字符 @name='jim' and @id=10 and @project='IT001'
提取出来:
拆成配对的dictionary
@name 'jim'
@id 10
@project 'IT001'

机器人 2011-03-19
  • 打赏
  • 举报
回复
正则表达式:

(?is)(?<=@)([^\s]*?)(?=(\s|\)))
你的选择B 2011-03-19
  • 打赏
  • 举报
回复
什么意思啊,
说清楚点

110,552

社区成员

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

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

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