![](/img/trans.png)
[英]Cannot bind to the property or column Name on the DataSource. Parameter name: dataMember
[英]column name as parameter
我在SQL表中有一些像text_en,text_es,text_de这样的列。 现在我想根据语言从一列中检索值。 所以我创建了一个sql字符串SELECT @textfield FROM <table>
,在vb代码中我使用了cmd.AddWithValue("textfield", "text_" + lang)
但是sql返回列的名称而不是该列的值。 我怎样才能获得价值?
你也可以
SELECT CASE @textfield
WHEN 'text_en' THEN text_en
WHEN 'text_es' THEN text_es
WHEN 'text_de' THEN text_de
END AS local_text
FROM TableName
不要将其作为参数传递,将其作为字符串文字传递。 你的sql语句应该是以下形式:
string col1name = 'somename';
string sql = 'SELECT ' + col1name + ' FROM TableName';
但是,如果您有一个参数传递给WHERE
子句,则应像在问题中一样将其作为参数传递。
请注意:您的查询,这种方式容易受到SQL Injection的攻击。 在您的情况下,您可以将连接的SQL语句传递给存储过程,然后使用sp_executesql
,而不是EXEC()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.