SQL:编写更简洁的paramaterized SQL [英] SQL: writing more concise paramaterized SQL

查看:62
本文介绍了SQL:编写更简洁的paramaterized SQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用参数化SQL。我已经开始工作,

但是现在我的一些查询看起来不必要了。例如:


strSQL =" IF NOT EXISTS(SELECT * FROM We_Link_SiteMenus_To_DirectoryContacts

WHERE contactID =?AND pageID =?)INSERT INTO

We_Link_SiteMenus_To_DirectoryContacts(contactID,pageID)VALUES(?,?)"


objCommand.Parameters.Add(" @ contactID",

System.Data.OleDb.OleDbType.Numeric).Value = Request(" hid_contactIDadd_"&

contactsCount)

objCommand.Parameters.Add(" @ pageID" ,

System.Data.OleDb.OleDbType.Numeric).Value = Request.QueryString(" pageID")

objCommand.Parameters.Add(" @ contactID" ,

System.Data.OleDb.OleDbType.Numeric).Value = Request(" hid_contactIDadd_"&

contactsCount)

objCommand。 Parameters.Add(" @ pageID",

System.Data.OleDb.OleDbType.Numeric).Value = Request.QueryString(" pageID")


如你所见,我是代表两次吃这两个值。是否有更简洁的

方式传递这些参数?


-Darrel

I''m trying to get the hang of using parameterized SQL. I''ve gotten to work,
but now some of my queries seem unecessarily long. For instance:

strSQL = "IF NOT EXISTS(SELECT * FROM We_Link_SiteMenus_To_DirectoryContacts
WHERE contactID = ? AND pageID = ?) INSERT INTO
We_Link_SiteMenus_To_DirectoryContacts (contactID, pageID) VALUES (?, ?)"

objCommand.Parameters.Add("@contactID",
System.Data.OleDb.OleDbType.Numeric).Value = Request("hid_contactIDadd_" &
contactsCount)
objCommand.Parameters.Add("@pageID",
System.Data.OleDb.OleDbType.Numeric).Value = Request.QueryString("pageID")
objCommand.Parameters.Add("@contactID",
System.Data.OleDb.OleDbType.Numeric).Value = Request("hid_contactIDadd_" &
contactsCount)
objCommand.Parameters.Add("@pageID",
System.Data.OleDb.OleDbType.Numeric).Value = Request.QueryString("pageID")

As you can see, I''m repeating the two values twice. Is there a less verbose
way to pass those parameters?

-Darrel

推荐答案

在2006年3月29日星期三13:54:31 -0600,darrel写道:
On Wed, 29 Mar 2006 13:54:31 -0600, darrel wrote:
正如你所看到的,我正在重复这两个值两次。是否有更简洁的方式来传递这些参数?
As you can see, I''m repeating the two values twice. Is there a less verbose
way to pass those parameters?




strSQL =" IF NOT EXISTS(SELECT * FROM e_Link_SiteMenus_To_DirectoryContacts

WHERE contactID = @contactID AND pageID = @pageID)INSERT INTO

We_Link_SiteMenus_To_DirectoryContacts(contactID,pageID)VALUES

(@ contactID,@ pageID)"



strSQL = "IF NOT EXISTS(SELECT * FROM e_Link_SiteMenus_To_DirectoryContacts
WHERE contactID = @contactID AND pageID = @pageID) INSERT INTO
We_Link_SiteMenus_To_DirectoryContacts (contactID, pageID) VALUES
(@contactID, @pageID)"


strSQL =" IF NOT EXISTS(SELECT * FROM
e_Link_SiteMenus_To_DirectoryContacts
WHERE contactID = @contactID AND pageID = @pageID) INSERT INTO
We_Link_SiteMenus_To_DirectoryContacts(contactID,pageID)VALUES
(@ contactID,@ pageID)"
strSQL = "IF NOT EXISTS(SELECT * FROM
e_Link_SiteMenus_To_DirectoryContacts
WHERE contactID = @contactID AND pageID = @pageID) INSERT INTO
We_Link_SiteMenus_To_DirectoryContacts (contactID, pageID) VALUES
(@contactID, @pageID)"




我一直看到这个用过在示例中,但我从来没有能够使用

'''''语法来使用MSSql。事实上,人们已经说'''''是我需要使用的价格。


我会试一试,虽然; o)


-Darrel



I''ve always seen this used in examples, but I''ve never been able to get the
''@'' syntax to work with MSSql. In fact, folks have said that the ''?'' is what
I need to use.

I''ll give it a shot, though ;o)

-Darrel


我见过''?''在OleDB中使用,带有Access - 但是我一直都知道并且是原来教的那个
,使用SQL Server 2000及以上版本,使用'''''符号

以及那个,无论你是哪个' '在声明和参数中使用,

绝对应该匹配


David Wier
http://aspnet101.com/
http://aspexpress.com/

MCP-VB6 / SQL Server / MVP(ASP.Net)

darrel ; <无***** @ nowhere.com>在消息中写道

news:%2 **************** @ tk2msftngp13.phx.gbl ...
I''ve seen ''?'' used in OleDB, with Access - but I''ve always known and was
originally taught, that with SQL Server 2000 and above, to use the ''@'' sign
and that, whichever you''re using, in the statement and the parameters,
should definitely match

David Wier
http://aspnet101.com/
http://aspexpress.com/
MCP-VB6/SQL Server/MVP (ASP.Net)
"darrel" <no*****@nowhere.com> wrote in message
news:%2****************@tk2msftngp13.phx.gbl...
strSQL =" IF NOT EXISTS(SELECT * FROM
e_Link_SiteMenus_To_DirectoryContacts
WHERE contactID = @contactID AND pageID = @pageID)INSERT INTO
We_Link_SiteMenus_To_DirectoryContacts(contactID,pageID)VALUES
(@ contactID,@ pageID)"
strSQL = "IF NOT EXISTS(SELECT * FROM
e_Link_SiteMenus_To_DirectoryContacts
WHERE contactID = @contactID AND pageID = @pageID) INSERT INTO
We_Link_SiteMenus_To_DirectoryContacts (contactID, pageID) VALUES
(@contactID, @pageID)"



我一直看到这个在例子中使用,但我从来没能得到
'@''语法与MSSql一起使用。事实上,人们已经说'''''
是我需要使用的。

我会试一试; o)
< br-> -Darrel



I''ve always seen this used in examples, but I''ve never been able to get
the ''@'' syntax to work with MSSql. In fact, folks have said that the ''?''
is what I need to use.

I''ll give it a shot, though ;o)

-Darrel



这篇关于SQL:编写更简洁的paramaterized SQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆