在为ms-sql数据库执行插入语句中,哪一种更好:
SQL DataAdapter或SQL命令对象?
他们哪一个会更好,而inserting only one row同时inserting multiple rows?
inserting only one row
inserting multiple rows
一个简单的代码用法示例:
SQL命令
string query = "insert into Table1(col1,col2,col3) values (@value1,@value2,@value3)"; int i; SqlCommand cmd = new SqlCommand(query, connection); // add parameters... cmd.Parameters.Add("@value1",SqlDbType.VarChar).Value=txtBox1.Text; cmd.Parameters.Add("@value2",SqlDbType.VarChar).Value=txtBox2.Text; cmd.Parameters.Add("@value3",SqlDbType.VarChar).Value=txtBox3.Text; cmd.con.open(); i = cmd.ExecuteNonQuery(); cmd.con.close();
SQL数据适配器
DataRow dr = dsTab.Tables["Table1"].NewRow(); DataSet dsTab = new DataSet("Table1"); SqlDataAdapter adp = new SqlDataAdapter("Select * from Table1", connection); adp.Fill(dsTab, "Table1"); dr["col1"] = txtBox1.Text; dr["col2"] = txtBox5.Text; dr["col3"] = "text"; dsTab.Tables["Table1"].Rows.Add(dr); SqlCommandBuilder projectBuilder = new SqlCommandBuilder(adp); DataSet newSet = dsTab.GetChanges(DataRowState.Added); adp.Update(newSet, "Table1");
使用DataAdapters来更新数据源要容易得多。进行更改更容易,因为您只需修改DataSet并调用Update。
使用DataAdapters与Commands之间的性能可能没有(或几乎没有)差异。DataAdapter在内部使用Connection和Command对象并执行Command来执行您告诉他们执行的操作(例如Fill和Update),因此它与仅使用Command对象几乎相同。