0
votes

I'm doing this exactly (see Using SqlDataAdapter to insert a row) but it doesn't give me the .ADD method

Here is my code:

var sqlQuery = "select * from CT_DETIMP where 0 = 1";
SqlDataAdapter tableAdapter = new SqlDataAdapter(sqlQuery, myConnection);
DataSet dataSet = new DataSet();
tableAdapter.Fill(dataSet);

var impRow = dataSet.Tables["CT_DETIMP"].NewRow();
impRow["TRANSCD"] = tranCode;
impRow["MISC"] = misc;
impRow["ADDENDA"] = addenda;

dataSet.Tables["CT_DETIMP"].Add(impRow);  // THIS IS WHERE THE ERROR IS 

new SqlCommandBuilder(tableAdapter);
tableAdapter.Update(dataSet);

I get the error DataTable does not contain a reference for ADD. I'd be happy to do this another way but I can't use table.Adapter.Insert because I need my data to go into specific fields.


So I changed dataSet.Tables["CT_DETIMP"].Add(impRow); to dataSet.Tables["CT_DETIMP"].Rows.Add(impRow); and now I am getting a null error on this line: var impRow = dataSet.Tables["CT_DETIMP"].NewRow();


This code worked:

' SqlConnection myConnection = new SqlConnection(connectionString); myConnection.Open();

        var sqlQuery = "select * from CT_detimp where 0 = 1";
        SqlDataAdapter tableAdapter = new SqlDataAdapter(sqlQuery, myConnection);

        SqlCommandBuilder cb = new SqlCommandBuilder(tableAdapter);

        DataSet dataSet = new DataSet("CT_DETIMP");
        tableAdapter.Fill(dataSet,"CT_DETIMP");

        DataTable detailTable = dataSet.Tables["CT_DETIMP"];
        DataRow impRow = detailTable.NewRow();'
2
Pretty sure it is .Rows.Addpaparazzo
also DataTable is the underlying of DataSet for example dataSet.Tables[0].Rows.AddMethodMan
MethodMan -- that was the trick --> rows.addMissy

2 Answers

1
votes

Change the line with the error to this:

dataSet.Tables["CT_DETIMP"].Rows.Add(impRow);
1
votes

You need to add to the DataTable.Rows collection

dataSet.Tables["CT_DETIMP"].Rows.Add(impRow);