Parameters.AddWithValue(“@參數”,value)方法

以前用command方法執行存儲過程增加參數時,總是先用cmd.Parameters.Add方法來設置參數和參數類型,再用Parameters[0].Value來給參數賦值。以前的一個動作代碼示例:

string strConn = "Data Source=.;Initial Catalog=HISDB;Integrated Security=True";

            using( SqlConnection conn = new SqlConnection(strConn))

            {

                conn.Open();

                SqlCommand cmd = new SqlCommand("AuditMessageInsert", conn);

                //設置命令類型爲存儲過程,沒有設置的話會執行失敗

                cmd.CommandType = CommandType.StoredProcedure;

                //設置參數名和類型

                cmd.Parameters.Add("@Target", SqlDbType.NChar);

                cmd.Parameters.Add("@Description", SqlDbType.NChar);

                cmd.Parameters.Add("@Actor", SqlDbType.NChar);

                cmd.Parameters.Add("@Time", SqlDbType.DateTime);

                cmd.Parameters.Add("@Computer", SqlDbType.NChar);

                //給參數賦值

                cmd.Parameters[0].Value = "ATarget";

                cmd.Parameters[1].Value = "Description";

                cmd.Parameters[2].Value = "Actor";

                cmd.Parameters[3].Value = DateTime.Now;

                cmd.Parameters[4].Value = "PC-Computer";

                cmd.ExecuteNonQuery();

            }

如果用Parameters.AddWithValue方法就不用這麼麻煩了,可以直接加參數名和其值,不用再設置參數的類型,示例代碼:

string strConn = "Data Source=.;Initial Catalog=HISDB;Integrated Security=True";

            using( SqlConnection conn = new SqlConnection(strConn))

            {

                conn.Open();

                SqlCommand cmd = new SqlCommand("AuditMessageInsert", conn);

               

                cmd.CommandType = CommandType.StoredProcedure;

               

             

                //增加參數:名稱與類型 且與表中參數的順序沒關係

                cmd.Parameters.AddWithValue("@Actor", "Actor");

                cmd.Parameters.AddWithValue("@Target", "Target");

                cmd.Parameters.AddWithValue("@Description", "Description");

 

                cmd.Parameters.AddWithValue("@Computer", "Computer");

                cmd.Parameters.AddWithValue("@Time", DateTime.Now);

 

 

                cmd.ExecuteNonQuery();

            }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章