Code below

patrick

Well-known member
Joined
Dec 5, 2021
Messages
251
Programming Experience
1-3
Hello

In the Code below, How do you implement DataPack?
In the Code below, dataPack = new DataPack(); and dataPack.ToOracleParameters(strQuery); <===============How do you implement DataPack and ToOracleParameters? Is there any sample code similar to this?


C#:
strQuery = @"
MERGE INTO Q_WARRANTY A USING DUAL ON (NW_CD=:NW_CD AND TRIM(NAME)=:NAME AND ITEMCODE=:ITEMCODE AND PRO= :PRO)
WHEN NOT MATCHED THEN
INSERT (NW_CD, NAME, ITEMCODE, PRO)VALUES(:NW_CD, :NAME, :ITEMCODE, :PRO)";

for (int i = 0; i < dtNwList.Rows.Count; i++)
{
string strNW_CD = dtNwList.Rows[i]["NW_CD"].ToString();

for (int j = 0; j < dtWarrnaty.Rows.Count; j++)
{
dataPack = new DataPack();

dataPack.AddProperty("NW_CD", typeof(string), strNW_CD);
dataPack.AddProperty("NAME", typeof(string), strNW_CD);
dataPack.AddProperty("ITEMCODE", typeof(string), dtWarrnaty.Rows[j]["ITEMCODE"].ToString());
dataPack.AddProperty("PRO", typeof(string), dtWarrnaty.Rows[j]["PRODUCT_CD"].ToString());

_agent.ExecuteNonQuery(strQuery, dataPack.ToOracleParameters(strQuery));
}
}
 
Last edited:
I had a brief look around the web for "datapack tooracleparameters" but turned up just one single posting in a korean forum from 2006. Perhaps not a popular library so you're going to have to provide a little more context. Personally I'd just use parameters direcly; you appear to be loading data into DataPack just so you can turn it into parameters, which seems more work than just doing it directly
 
Well, there are some logical errors in your code. Here is the correct code you can try to fix the error.

C#:
// DataPack class for parameterization
public class DataPack
{
    private Dictionary<string, object> parameters = new Dictionary<string, object>();

    public void AddParameter(string parameterName, object value)
    {
        parameters.Add(parameterName, value);
    }

    public object GetParameter(string parameterName)
    {
        return parameters[parameterName];
    }

    // Other methods or properties as needed
}

// Usage in your code
string strQuery = @"
    MERGE INTO Q_WARRANTY A USING DUAL ON (NW_CD=:NW_CD AND TRIM(NAME)=:NAME AND ITEMCODE=:ITEMCODE AND PRO=:PRO)
    WHEN NOT MATCHED THEN INSERT (NW_CD, NAME, ITEMCODE, PRO) VALUES (:NW_CD, :NAME, :ITEMCODE, :PRO)";

for (int i = 0; i < dtNwList.Rows.Count; i++)
{
    string strNW_CD = dtNwList.Rows[i]["NW_CD"].ToString();

    for (int j = 0; j < dtWarrnaty.Rows.Count; j++)
    {
        DataPack dataPack = new DataPack();

        dataPack.AddParameter("NW_CD", strNW_CD);
        dataPack.AddParameter("NAME", strNW_CD);
        dataPack.AddParameter("ITEMCODE", dtWarrnaty.Rows[j]["ITEMCODE"].ToString());
        dataPack.AddParameter("PRO", dtWarrnaty.Rows[j]["PRODUCT_CD"].ToString());

        // Pass dataPack to a method that executes the query with parameters
        _agent.ExecuteNonQuery(strQuery, dataPack);
    }
}

Thanks
 
Hmmm...

1694772444905.png



I have doubts
 
Back
Top Bottom