Adding a column to a datatable and adding data

30,950
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

Share:
30,950
Arianule
Author by

Arianule

Updated on January 16, 2020

Comments

  • Arianule
    Arianule over 4 years

    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
    
    
                    }
                }
    
            }