C# 根据传递的参数对SQL表执行更新
这个程序已经编写好了,我需要添加一个update SQL语句来更新另一个基于@IN的表。声明SQL命令后,如何使其执行,是否可以使用与其他SQL命令相同的SQLConnection?这个程序所做的是将一个文件解析为一个名为“个人”的列表,我只想从中更新SQL中的字段。第一个SQL已经在中编写,似乎可以正确执行,现在我需要执行UpdtHasInv SQL,并实际获取执行更新的代码,这是我需要帮助的地方 以下是我到目前为止的情况:C# 根据传递的参数对SQL表执行更新,c#,sql,sqlcommand,C#,Sql,Sqlcommand,这个程序已经编写好了,我需要添加一个update SQL语句来更新另一个基于@IN的表。声明SQL命令后,如何使其执行,是否可以使用与其他SQL命令相同的SQLConnection?这个程序所做的是将一个文件解析为一个名为“个人”的列表,我只想从中更新SQL中的字段。第一个SQL已经在中编写,似乎可以正确执行,现在我需要执行UpdtHasInv SQL,并实际获取执行更新的代码,这是我需要帮助的地方 以下是我到目前为止的情况: static void InsertCustomData(Coll
static void InsertCustomData(Collection<Individuals> individuals)
{
#region
string insertsql = "";
insertsql = @"Insert into IND (IND_ID, ITEM_NAME, INDL_ITEM_VALUE, XPTIM)
select IND_ID, '{0}' as Item, '{1}' as val, (current timestamp - curtime)"
FROM IND
where IN = @IN";
// this is SQL I added for update
**UpdtHasInv = @"UPDATE Ind
SET HAS_I = -1
WHERE IN = @IN";**
#endregion
using (DB2Connection conn = DB2Helper.getConnection())
{
DB2Command cmd = conn.CreateCommand();
cmd.CommandTimeout = 600;
cmd.Parameters.Add("@IN", "");
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
foreach (Individuals individual in individuals)
{
cmd.Parameters["@IN"].Value = individual.In;
foreach (CustomData customData in individual.CustomData)
{
cmd.CommandText = string.Format(insertIndsql, customData.Data.Key, customData.Data.Value);
您可以使用分号将
更新
附加在插入
之后
insertIndsql = @"
INSERT INTO IND (IND_ID, ITEM_NAME, INDL_ITEM_VALUE, XPTIMESTAMP)
SELECT INDIVIDUAL_ID, '{0}' as Item, '{1}' as val, (current timestamp - curtime)
FROM IND
WHERE TIN = @TIN;
UPDATE DB2INST1.Individual
SET HAS_INVESTMENT = -1
WHERE TIN = @TIN;";
执行时,这两条语句将作为同一命令的一部分执行。sql server从何而来?
insertIndsql = @"
INSERT INTO IND (IND_ID, ITEM_NAME, INDL_ITEM_VALUE, XPTIMESTAMP)
SELECT INDIVIDUAL_ID, '{0}' as Item, '{1}' as val, (current timestamp - curtime)
FROM IND
WHERE TIN = @TIN;
UPDATE DB2INST1.Individual
SET HAS_INVESTMENT = -1
WHERE TIN = @TIN;";