确定Ado.net中的字符串文字转义字符

时间:2009-07-21 23:30:51

标签: .net sql database ado.net

给定来自任何数据提供者的任何DbConnection,是否可以确定用于引用字符串文字的字符或字符串中的任何特殊字符?我也对引用模式/表/列名称标识符所需的字符感兴趣。

使用参数来指定这些东西不是一个选项,因为我的应用程序的目的是帮助用户构建SQL查询并在查询中使用常量是一种常见的场景。

我可以使用DataSourceInformation架构集合来获取类似StringLiteralPattern和QuotedIdentifierPattern的内容 (参见http://msdn.microsoft.com/en-us/library/ms254501.aspx)但这只能帮助我匹配现有的字符串而不是自己创建它们。

2 个答案:

答案 0 :(得分:1)

创建连接(称为cnn)后,我执行了以下操作来引用模式/表/列名称标识符:

'Get table and column delimiters
Dim sTest As String = ""
Dim sLeftDelimiter As String = ""
Dim sRightDelimiter As String = ""
Dim cmd As DbCommand = cnn.CreateCommand()
Dim adapter As DbDataAdapter = factoryDB.CreateDataAdapter()
Dim builder As DbCommandBuilder = factoryDB.CreateCommandBuilder()
cmd.Connection = cnn
adapter.SelectCommand = cmd
builder.DataAdapter = adapter
sTest = builder.QuoteIdentifier("test")
sLeftDelimiter = sTest.Substring(0, 1)
sRightDelimiter = sTest.Substring(5, 1)

答案 1 :(得分:0)

我根据提供者类型和版本(从DbConnection确定)使用switch语句,以便知道要使用的分隔符/转义字符。