Option 1: to insert data in a db
SqlCommand cmd = new SqlCommand("INSERT INTO table_name(eid,eName,Dept) values('"+ textBox1.Text +"','"+ textBox2.Text +"','"+ Textbox3.Text +"'", con);
cmd.ExecuteNonQuery();
Option 2:
SqlDataAdapter sqlda = new SqlDataAdapter("SELECT * FROM table_name",con);
SqlCommandBuilder sqlcomb = new SqlCommandBuilder(sqlda);
DataSet dset = new DataSet("table1");
sqlda.Fill(dset,"table1");
DataRow drow = dset.Tables["table1"].NewRow();
drow["eid"] = textBox1.Text.ToString();
drow["eName"] = textBox2.Text.ToString();
drow["Dept"] = textBox3.Text.ToString();
dset.Tables["table1"].Rows.Add(drow);
sqlda.Update(dset, "table1");
My question is, I feel like option1 is best method to insert.. why we using SqlCommandBuilder
to insert data? What is the use of SqlCommandBuilder? Any advantages in inserting the data using SqlCommandBuilder
? your suggestion plz
I would always go for option 3: parametrized queries !!
If you do - see what will happen eventually.....
They are both safe against SQL injection attacks, and more efficient (since a single query plan can be reused if you call this with several parameter values):
Or then option 4 : use an ORM (object-relational mapper) like Dapper-Dot-Net or Entity Framework to get your relational data into nice objects for use in .NET (and finally forget about messing around with
DataRow
andDataColumn
and such stuff) ??