2

How can I add a column to a datatable and add data to each row based on a condition. This is what I am trying to do

conn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;
                                Data Source =" + Server.MapPath("App_Data\\LR Product Database 2000.mdb"));
        conn.Open();

        Dictionary<string, string> items = new Dictionary<string, string>();
        OleDbCommand cmd = conn.CreateCommand();
        cmd.CommandText = "SELECT CODE, TITLE FROM tblProducts";

        OleDbDataReader dbread = cmd.ExecuteReader();

        while (dbread.Read())
        {
            productCode = (string)dbread["ProductCode"];
            productTitle = items[productCode];
            items.Add(productCode, productTitle);
        }

        sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["LRVWebsite"].ToString());
        sqlCon.Open();
        dsSql = new DataSet();
        SqlDataAdapter dba = new SqlDataAdapter(@"SELECT C.CustomerFirstName,C.CustomerLastName, C.CustomerCompany,C.CustomerPosition,C.CustomerCountry,C.CustomerProvince,C.CustomerContact,CP.ActionDate,CP.ProductCode,CP.CustomerEmail FROM tblCustomers C INNER JOIN tblCustomerProducts CP ON C.CustomerEmail = CP.CustomerEmail ORDER BY ActionDate DESC", connString);
        dba.Fill(dsSql,"Products");
        DataTable dt = dsSql.Tables["Products"];

        foreach (DataRow dr in dt.Rows)
        {
            for (int i = 0; i < items.Count; i++)
            {
                if (dr["ProductCode"].ToString().Equals(productCode))
                {
                    //here I want to add a new column and add data (productTitle) to the column


                }
            }

        }

1 Answer 1

4
dba.Fill(dsSql,"Products");
DataTable dt = dsSql.Tables["Products"];

dt.Columns.Add("ColumnName", typeof(DataType));

if (dr["ProductCode"].ToString().Equals(productCode))
{
    dr["ColumnName"] = value;    
}

Further i would extend the code to avoid NullReferenceException

 if (!String.IsNullOrEmpty(dr["ProductCode"]) && dr["ProductCode"].ToString().Equals(productCode))
 {
        dr["ColumnName"] = value;    
 }

http://msdn.microsoft.com/en-us/library/hfx3s9wd.aspx

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.