小编Mr *_*ubs的帖子

如何使用Postgres/NpgSQL动态查询列名

我有一个过滤器对象来查询具有许多列的表,而不是写一个覆盖所有列的条件(允许可选的过滤),如下所示:

WHERE ((:value0 IS NULL) OR (column_name0 = :value0)) AND ((:value1 IS NULL) OR (column_name1 = :value1)) AND... etc
Run Code Online (Sandbox Code Playgroud)

对于每一列.相反,我理想情况下我希望能够将字段名称作为参数传递:

WHERE :column_name0 = :value0 AND column_name1 = :value1 AND... etc
Run Code Online (Sandbox Code Playgroud)

这是不可能的,因为在解析时需要列(类似于此处给出的答案).

你怎么克服这个? - 我真的不想在添加或删除新列时维护SQL(正如我在第一个例子中所做的那样),我认为将列名直接构造到命令字符串中会很危险因为这可能允许sql注入.

请注意,此代码位于Web服务之后.

sql postgresql data-access-layer npgsql

7
推荐指数
1
解决办法
2万
查看次数

防止与memcached的连接过多(Enyim Client)

我正在寻找有关处理打开memcached连接的有效解决方案的建议,给出FAQ引用:

记住,没有什么能阻止你多次意外连接.如果将memcached客户端对象实例化为您尝试存储的对象的一部分,那么当一个请求中的1,000个对象创建1,000个并行连接时,请不要感到惊讶.在跳到列表之前仔细查看这样的错误.

另请参阅:初始化Memcached客户端管理连接对象.

我考虑在缓存程序集中使用单例来提供memcached客户端,但我确信必须有更好的方法,因为锁会引入(不需要的?)开销.

我很清楚客户端的使用模式,我不清楚的是如何在可扩展性和性能方面有效地使用客户端.其他人如何处理使用memcached客户端?

这里有50美元的赏金给你.

.net performance memcached scalability enyim

6
推荐指数
1
解决办法
3133
查看次数

Web Service调用导致System.Xml.XmlException:'.',十六进制值0x00

我从我的Web服务中抛出了以下未处理的异常 - 这与我的代码没有任何关系,它只是在异步调用服务器多次时间歇性地发生.我已经包含了我返回的代码响应对象,以及这是唯一返回的东西(在此导致泛型响应是一个String的列表).有没有人在知道为什么网络服务可能会抛出这个之前遇到过这种情况?

整个堆栈跟踪:

System.Xml.XmlException: '.', hexadecimal value 0x00, is an invalid character. Line 4, position -88.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
   at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String[] args)
   at System.Xml.XmlTextReaderImpl.ThrowInvalidChar(Int32 pos, Char invChar)
   at System.Xml.XmlTextReaderImpl.ParseNumericCharRefInline(Int32 startPos, Boolean expand, BufferBuilder internalSubsetBuilder, Int32& charCount, EntityType& entityType)
   at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
   at System.Xml.XmlTextReaderImpl.ParseText()
   at System.Xml.XmlTextReaderImpl.ParseElementContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlTextReader.Read()
   at System.Xml.XmlReader.ReadElementString()
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPartsLibraryService.Read29_GenericResponseOfListOfString(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPartsLibraryService.Read34_UploadPartsResponse()
   at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer5.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, …
Run Code Online (Sandbox Code Playgroud)

iis soap web-services exception-handling .net-2.0

6
推荐指数
1
解决办法
1727
查看次数

如何控制复杂对象的反序列化

我称第三方Web服务返回大量XML数据(大约2mb),我想以比正常更受控制的方式将其反序列化为对象.这是xml:

<vehicle>
  <vehicleManufacturer>
    <type>1</type>
    <name>A Make</name>
  </vehicleManufacturer>
...
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用下面的代码来控制哪些元素被序列化到哪些属性,在这种情况下,Car Make对象包含两个属性,类型和名称.

    <System.Xml.Serialization.XmlElement("vehicleManufacturer")> _
    Public Property Make() As CarMake
Run Code Online (Sandbox Code Playgroud)

但是,如果可能的话,我希望能够将名称字段反序列化为Make属性,或者甚至将整个元素及其内容序列化为文本.

    <System.Xml.Serialization.XmlElement("vehicleManufacturer")> _
    Public Property Make() As String
Run Code Online (Sandbox Code Playgroud)

这是一个非常简单的例子,所以如果有任何资源可以帮助我,那就太棒了.

另一个例子:

<vehicle>
  <warrantyDetail>
    <warrantyBasicInformation buildStartdate="09/07/2013" warrantyStartDate="31/07/2013"/>
  </warrantyDetail>
</vehicle>
Run Code Online (Sandbox Code Playgroud)

我想从warrantyBasicInformation中获取属性,而无需构建保修详细信息和warrantyBasicInformation对象.

请注意,这种事情通常是从WSDL生成的,但是,我不会提供一个,我没有XSD,并且尝试生成一个失败.我也知道我可以实现ISerializable并使用xml阅读器或linq,但同样,这可能会变成很多代码,也许很难维护.

.net xml vb.net serialization

6
推荐指数
1
解决办法
469
查看次数

当SQL包含变量时,在pgAdmin中调试SQL

在SQL Server中,我可以从应用程序中复制sql代码并将其粘贴到SSMS中,声明并分配sql中存在的vars并运行.伟大的调试方案.

例如(请注意我生锈了,语法可能不正确):

declare @x as varchar(10)
set @x = 'abc'
select * from sometable where somefield = @x
Run Code Online (Sandbox Code Playgroud)

我想在pgAdmin(或其他postgres工具,任何推荐?)中使用Postgres做类似的事情,我可以将我的SQL(params和all)放到将对Postgres DB运行的东西上.

我意识到你可以创建pgscript,但它看起来并不是很好,例如,如果我做上面的等价,它不会在@x的值中放置单引号,也不会让我通过将它们加倍并且你没有得到一张桌子 - 只有文字......

目前我有一个SQL编写的SQL中有3个独特的变量,每个变量大约6次使用...

所以问题是其他人如何有效地调试SQL ,最好是以与我的SQL Server时间类似的方式.

sql postgresql debugging pgadmin

5
推荐指数
1
解决办法
3434
查看次数

样式/格式对SQL的影响

忽略版本,格式化SQL代码的最佳实践是什么?

我更喜欢这种方式(方法A):

select col from a inner join b on a.id = b.id inner join c on b.id = c.id
Run Code Online (Sandbox Code Playgroud)

同事更喜欢另一个(方法B):

select col from a inner join (b inner join c on b.id=c.id) on a.id = b.id
Run Code Online (Sandbox Code Playgroud)

我想知道是否存在任何差异 - 查询优化器似乎为两者生成相同的执行计划.那也许只是可读性?

这是我第一次看到使用方法B编写的SQL,有没有其他人像这样编写SQL?我个人觉得很难读出方法B.

编辑:请注意代码在一行和大写字母,以使这两个代码更具可比性.

sql coding-style

5
推荐指数
1
解决办法
233
查看次数

添加引用会添加错误的版本

当添加对VS 2008的引用时,该版本应该是v1.0.0.0,当它应该是v1.1.0.0时 - 据我所知,它绝对没有理由添加错误的版本.

这两个项目都是从头开始编写的,没有其他参考引用我正在尝试添加的程序集,当我在windows中查看该文件时,它具有正确的版本,但不知何故VS仍然选错了(目标路径是正确的) ).

有谁知道如何让VS选择我指向它的版本,而不是它决定的一些旧版本(完全没有理由)是正确的版本?

之前问过这个问题,但没有解决问题的答案......

我绝对是在挑选正确的文件.

assemblies assembly-resolution visual-studio-2008

5
推荐指数
1
解决办法
1283
查看次数

我是否完全误解了ASP.Net AJAX(更新面板)?

我可能误解了AJAX是如何工作的 - 有人可以对下面的简化场景有所了解:

我有一个asp.net Web应用程序.在页面上,更新面板中没有用户控件(没有更改属性)和脚本管理器.

在用户控件和表单上有一个标签,两者都DateTime.Now.ToString在load事件中设置其文本.还有一个按钮,用于在用户控件中返回帖子.

当我单击按钮时,我希望用户控件内的标签更新,页面上的一个标签现在就可以了.到现在为止还挺好.

但是...页面上的页面加载事件确实用isPostBack = True处理(我没想到),看起来加载事件中发生的任何事情都没有被推回到客户端(因为标签没有不要更新.

我没想到在更新AJAX面板时会引发和处理页面加载事件(在包含用户控件的页面中),这是正确的吗?或者我做错了什么?我记得读过一些关于Page.IsCallback的内容,但这是假的,所以也许这与此无关.

asp.net ajax page-lifecycle

5
推荐指数
1
解决办法
931
查看次数

Postgres的ETL选项

目前我们使用SSIS来存储我们的postgres数据库,但是有一些我们做不到的事情,例如使用ADO.Net提供程序,不可能在数据流组件的数据源中使用参数,我们正在尝试OLEDB提供商PGNP看起来像我们需要的那样.

我想知道还有哪些其他选择以及您对它们的看法.我使用了开放式talend,但与SSIS相比,性能并不是那么好.

postgresql etl data-warehouse

5
推荐指数
1
解决办法
1万
查看次数

如何将 pem 私钥转换为可在 .NET 中使用的 Windows 格式

我得到了一个私钥,结果是 pkcs8 格式,我设法使用以下命令将其转换为 pem 文件:

openssl pkcs8 -inform der -nocrypt -in private.key -out pkey.pem
Run Code Online (Sandbox Code Playgroud)

我现在需要将其转换为 pkcs12,以便我可以在 .NET 中使用它来创建 X509 证书(我也想将其导入到 Windows 证书管理器)。

我尝试了这个命令:

openssl pkcs12 -export -name myalias -in mycert.crt -inkey pkey.pem -out keystore.p12
Run Code Online (Sandbox Code Playgroud)

但是,我没有公钥,我尝试使用 pkey.pem 文件作为 -in arg,但它告诉我No certificate matches private key。如果我在没有-inarg 的情况下尝试,那么什么也不会发生(我的意思是什么都没有,在我按 之前会有一个空白行ctrl-c)。

如何从私钥生成公钥,或者在没有公钥的情况下转换为 pkcs12?

这个问题的第一部分来自这里的答案

找到了一个给了我一些希望的答案,它说运行这个命令(-nocerts):

openssl pkcs12 -export -nocerts -inkey your.private.key.pem -out your.private.key.p12
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将文件导入到 Windows 密钥存储中时,它会显示The specified file is empty正在导入。

我还设法根据此处的说明生成证书签名请求,该请求生成了证书文件,但该命令仍然不接受该说法No certificate …

.net openssl x509certificate

5
推荐指数
1
解决办法
1万
查看次数