C# 从keyvaluepair插入数据库表
尝试将列表中的值与keyvaluepair中的键匹配,并从keyvaluepair中检索相应的值并用作sql参数,在我的示例中,它是@ValueDEC# 从keyvaluepair插入数据库表,c#,key-value,C#,Key Value,尝试将列表中的值与keyvaluepair中的键匹配,并从keyvaluepair中检索相应的值并用作sql参数,在我的示例中,它是@ValueDE foreach (KeyValuePair<int,string> kvp in Valuedescripts) { int val = kvp.Key; string descrip = kvp.Value; foreach (DataUds data in DataUds) { us
foreach (KeyValuePair<int,string> kvp in Valuedescripts)
{
int val = kvp.Key;
string descrip = kvp.Value;
foreach (DataUds data in DataUds)
{
using (DB2Connection sqlconn = new DB2Connection())
{
sqlconn.Open();
DB2Command cmdtx = new DB2Command();
string insert = @"INSERT into LNPY (LN_NR, ITEM_NAME, MR_NR, VALUE)
VALUES (@LN, @Nbr, @Val, @ValueDE)";
cmdtx.Parameters.Add("@Nbr", data.MN);
cmdtx.Parameters.Add("@Ln", data.LN);
cmdtx.Parameters.Add("@Val",data.item);
foreach(Valuedescripts中的KeyValuePair kvp)
{
int val=kvp.Key;
字符串descripp=kvp.Value;
foreach(DataUds中的DataUds数据)
{
使用(DB2Connection sqlconn=new DB2Connection())
{
sqlconn.Open();
DB2Command cmdtx=新的DB2Command();
字符串insert=@“插入LNPY(LN\u编号,项目名称,MR\u编号,值)
值(@LN、@Nbr、@Val、@ValueDE)”;
cmdtx.Parameters.Add(“@Nbr”,data.MN”);
添加(“@Ln”,data.Ln);
cmdtx.Parameters.Add(“@Val”,data.item);
如何获取此参数?
Cmdtx.Parameters.Add(“@valueDE”
Data.item来自一个列表,我需要使用该值将其设置为val(kvp.key),检索相应的Descrip并将其作为参数填写。我不确定您到底想要什么,除了需要将keyvaluepair中的值用作插入查询中的参数这一点。我想您已经接近了
foreach (KeyValuePair<int,string> kvp in Valuedescripts)
{
int val = kvp.Key;
string descrip = kvp.Value;
foreach (DataUds data in DataUds)
{
//something like
if (descrip == data.item) //only u know it
{
using (DB2Connection sqlconn = new DB2Connection())
{
sqlconn.Open();
DB2Command cmdtx = new DB2Command();
string insert = @"INSERT into LNPY (LN_NR, ITEM_NAME, MR_NR, VALUE)
VALUES (@LN, @Nbr, @Val, @ValueDE)";
cmdtx.Parameters.Add("@Nbr", data.MN);
cmdtx.Parameters.Add("@Ln", data.LN);
cmdtx.Parameters.Add("@Val",data.item);
cmdtx.Parameters.Add("@ValueDE", val);
}
break; //again only u know it. Will be good if you have only item to match
}
}
}
foreach(Valuedescripts中的KeyValuePair kvp)
{
int val=kvp.Key;
字符串descripp=kvp.Value;
foreach(DataUds中的DataUds数据)
{
//差不多
if(descrip==data.item)//只有你知道它
{
使用(DB2Connection sqlconn=new DB2Connection())
{
sqlconn.Open();
DB2Command cmdtx=新的DB2Command();
字符串insert=@“插入LNPY(LN\u编号,项目名称,MR\u编号,值)
值(@LN、@Nbr、@Val、@ValueDE)”;
cmdtx.Parameters.Add(“@Nbr”,data.MN”);
添加(“@Ln”,data.Ln);
cmdtx.Parameters.Add(“@Val”,data.item);
cmdtx.Parameters.Add(“@ValueDE”,val);
}
break;//同样,只有你知道。如果你只有一个项目可以匹配,那就好了
}
}
}
此外,不要以这种方式向db插入对象列表,这将比使用
值(…),(…)的批量插入慢得多,(……
语法。您应该循环通过foreach来实际构造查询….那么问题出在哪里?为什么不使用int val
value?我需要在keyvaluepair列表中查找data.ln,找到与键对应的值,并将其设置为@valueDe参数。好的,更多解释数据。项来自列表and我需要使用该值在keyvaluepair列表中查找val(kvp.key),如果data.item=val(kvp.key),我想检索descripp(kvp.value)和填充参数。很抱歉,我错过了顶部的if。@LewSim如果您需要使用keyvaluepairs列表中的值检查data.item value,那么您的外部循环最好是datauds循环,内部循环最好是keyvaluepairs循环列表