【发布时间】:2016-01-11 16:56:33
【问题描述】:
我正在尝试创建 MySQLCommand 对象以对数据库表执行查询。现在我的问题是:
所有记录都存储在这个DataRow列表中:Records,这个列表包含不同表的记录字段。通常为了在表中添加结果,我定义了一个MySqlCommand 对象,稍后使用参数化查询传递参数,但是,在这种情况下,我不知道参数的数量,我只有一个包含很多记录的列表里面。现在存储此记录的表的名称包含在列表的第一个索引中,所以当我迭代列表时,只需跳过第一个索引并获取所有值。谁能告诉我这是怎么做到的?
示例:
Dim query = "INSERT INTO table (name, description) VALUES (@namep, @descriptionp)"
MyCommand = New MySqlCommand(query, my connection here)
MyCommand.Parameters.AddWithValue("@namep", "some value")+
MyCommand.Parameters.AddWithValue("@descriptionp", "another value")
这是我平时做的MySqlCommand,现在想象一下,在我的列表中有很多记录,如name,description,还有其他查询的参数。如何创建类似的结构来添加此参数?
【问题讨论】:
-
我想自己添加参数是很容易的部分。但是为实际查询构建字符串需要一些逻辑。您是否拥有构建它所需的所有信息?显示您尝试构建的实际 SQL 查询的示例。对于实际查询中的任何“未知”元素,你会从哪里得到它的值? (表名、列名等)
-
我已经添加了一个例子
-
该查询的哪些组件是“未知的”?大概你在某处有一个表名作为字符串,以及列名和值的集合?您可以使用这些组件为查询构建字符串,主要是通过循环该键/值集合。 (循环中的一个简单递增值可以用作参数名称。)您将用于构建查询的信息是什么?
-
嗯,递增索引是一个好主意,但正如我所说,我不知道查询结构,因为这个 DataRow 中有很多价值,所以创建递增索引该参数只是部分解决方案。
标签: vb.net