???????SQL???????????????????????ò?????SQL???????????????????——???????????????????????????????ò?????SQL?????????????????棬???????????
????ADO.NET-AddWithValue
????ADO.NET???????SQL Server????????????????.NET???????——???Щ?????????á?????????——???????????ADO.NET????????????????????????????????á????????????????SQL?????е?C#??????
????1 for (int i = 1; i <= 100; i++)
????2 {
????3    val += i.ToString();
????4
????5    cmd = new SqlCommand(
????6       "SELECT * FROM Sales.SalesOrderDetail WHERE CarrierTrackingNumber = @CarrierTrackingNumber"??
????7       cnn);
????8    cmd.Parameters.AddWithValue("@CarrierTrackingNumber"?? val);
????9    SqlDataReader reader = cmd.ExecuteReader();
????10    reader.Close();
????11 }
????????????????????????SQL?????????????????ADO.NET??????????????????????System.Data.SqlClient.SqlParameterCollection???AddWithValue??????????????????????WHLIE????????????SQL???100?Σ????ò?????????????????Sales.SalesOrderDetail????CarrierTrackingNumber?ж????NVARCHAR(25)??????????????????????????????????????????25?????????????????????????????????????SQL?????к???????檔
????1 SELECT
????2     st.text??
????3     cp.*
????4 FROM sys.dm_exec_cached_plans cp
????5 CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) st
????6 GO
???????????????е?????????????????洢??100?????????м????

???????????????????????????????1????м??——???????????????NVACHAR(25)??AddWithValue????????????а????????????????????????????????????????????
????ADO.NET – SqlDbType.VarChar
????????????????????????????????????????ADO.NET??AddWithValue???????????——?????????????????????????д?????C#??????????????????????????????????????
????1 for (int i = 1; i <= 100; i++)
????2 {
????3    val += i.ToString();
????4
????5    cmd = new SqlCommand(
????6       "SELECT * FROM Sales.SalesOrderDetail WHERE CarrierTrackingNumber = @CarrierTrackingNumber"??
????7       cnn);
????8    cmd.Parameters.Add(new SqlParameter("@CarrierTrackingNumber"?? SqlDbType.VarChar));
????9    cmd.Parameters["@CarrierTrackingNumber"].Value = val;
????10    SqlDataReader reader = cmd.ExecuteReader();
????11    reader.Close();
????12 }
?????????????????????ADO.NET?????????????????????????????????????????SqlDbType.Varchar????????????????????????SQL???100?β???μ?????????棺

???????????????????????????????????????100????????????м???????????????ADO.NET?????????????SqlDbType.VarChar???????????????????”????”????100????????????????????????100?????????м????
??????????????ADO.NET???????????????????????????????????????????????????????Щ??????C#????
????1 for (int i = 1; i <= 100; i++)
????2 {
????3    val += i.ToString();
????4
????5    cmd = new SqlCommand(
????6       "SELECT * FROM Sales.SalesOrderDetail WHERE CarrierTrackingNumber = @CarrierTrackingNumber"??
????7       cnn);
????8    cmd.Parameters.Add(new SqlParameter("@CarrierTrackingNumber"?? SqlDbType.VarChar?? 100));
????9    cmd.Parameters["@CarrierTrackingNumber"].Value = val;
????10    SqlDataReader reader = cmd.ExecuteReader();
????11    reader.Close();
????12 }
???????????????????????????——??????100?????????????????SQL???100???????????????????????1????м??????????100??????????????????SQL Server?????????

????С??
???????ADO.NET????????????????????????????????????AddWithValue????????????SQL Server??????????????????????????????????ò?????SQL??????????????????????????????????????????????????????????????????????