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
Author by
Arianule
Updated on January 16, 2020Comments
-
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 } } }